patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
155 lines
6 KiB
Text
155 lines
6 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA1
|
|
|
|
=============================================================================
|
|
FreeBSD-SA-09:03.ntpd Security Advisory
|
|
The FreeBSD Project
|
|
|
|
Topic: ntpd cryptographic signature bypass
|
|
|
|
Category: contrib
|
|
Module: ntpd
|
|
Announced: 2009-01-13
|
|
Credits: Google Security Team
|
|
Affects: All FreeBSD releases
|
|
Corrected: 2009-01-13 21:19:27 UTC (RELENG_7, 7.1-STABLE)
|
|
2009-01-13 21:19:27 UTC (RELENG_7_1, 7.1-RELEASE-p2)
|
|
2009-01-13 21:19:27 UTC (RELENG_7_0, 7.0-RELEASE-p9)
|
|
2009-01-13 21:19:27 UTC (RELENG_6, 6.4-STABLE)
|
|
2009-01-13 21:19:27 UTC (RELENG_6_4, 6.4-RELEASE-p3)
|
|
2009-01-13 21:19:27 UTC (RELENG_6_3, 6.3-RELEASE-p9)
|
|
CVE Name: CVE-2009-0021
|
|
|
|
For general information regarding FreeBSD Security Advisories,
|
|
including descriptions of the fields above, security branches, and the
|
|
following sections, please visit <URL:http://security.FreeBSD.org/>.
|
|
|
|
I. Background
|
|
|
|
The ntpd daemon is an implementation of the Network Time Protocol
|
|
(NTP) used to synchronize the time of a computer system to a reference
|
|
time source.
|
|
|
|
FreeBSD includes software from the OpenSSL Project. The OpenSSL
|
|
Project is a collaborative effort to develop a robust,
|
|
commercial-grade, full-featured Open Source toolkit implementing the
|
|
Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1)
|
|
protocols as well as a full-strength general purpose cryptography
|
|
library.
|
|
|
|
II. Problem Description
|
|
|
|
The EVP_VerifyFinal() function from OpenSSL is used to determine if a
|
|
digital signature is valid. When ntpd(8) is set to cryptographically
|
|
authenticate NTP data it incorrectly checks the return value from
|
|
EVP_VerifyFinal().
|
|
|
|
III. Impact
|
|
|
|
An attacker which can send NTP packets to ntpd, which uses
|
|
cryptographic authentication of NTP data, may be able to inject
|
|
malicious time data causing the system clock to be set incorrectly.
|
|
|
|
IV. Workaround
|
|
|
|
Use IP based restrictions in ntpd itself or in IP firewalls to
|
|
restrict which systems can send NTP packets to ntpd.
|
|
|
|
NOTE WELL: If ntpd is not explicitly set to use cryptographic
|
|
authentication of NTP data the setup is not vulnerable to the issue
|
|
as described in this Security Advisory.
|
|
|
|
V. Solution
|
|
|
|
NOTE WELL: Due to an error in building the updates, this fix is not
|
|
available via freebsd-update at the time of this advisory. We expect
|
|
that this will be fixed within the next 48 hours.
|
|
|
|
Perform one of the following:
|
|
|
|
1) Upgrade your vulnerable system to 6-STABLE, or 7-STABLE, or to the
|
|
RELENG_7_1, RELENG_7_0, RELENG_6_4, or RELENG_6_3 security branch
|
|
dated after the correction date.
|
|
|
|
2) To patch your present system:
|
|
|
|
The following patches have been verified to apply to FreeBSD 6.3, 6.4,
|
|
7.0, and 7.1 systems.
|
|
|
|
a) Download the relevant patch from the location below, and verify the
|
|
detached PGP signature using your PGP utility.
|
|
|
|
[FreeBSD 6.4 and 7.1]
|
|
# fetch http://security.FreeBSD.org/patches/SA-09:03/ntpd.patch
|
|
# fetch http://security.FreeBSD.org/patches/SA-09:03/ntpd.patch.asc
|
|
|
|
[FreeBSD 6.3 and 7.0]
|
|
# fetch http://security.FreeBSD.org/patches/SA-09:03/ntpd63.patch
|
|
# fetch http://security.FreeBSD.org/patches/SA-09:03/ntpd63.patch.asc
|
|
|
|
b) Execute the following commands as root:
|
|
|
|
# cd /usr/src
|
|
# patch < /path/to/patch
|
|
# cd /usr/src/usr.sbin/ntp/ntpd
|
|
# make obj && make depend && make && make install
|
|
# /etc/rc.d/ntpd restart
|
|
|
|
VI. Correction details
|
|
|
|
The following list contains the revision numbers of each file that was
|
|
corrected in FreeBSD.
|
|
|
|
CVS:
|
|
|
|
Branch Revision
|
|
Path
|
|
- -------------------------------------------------------------------------
|
|
RELENG_6
|
|
src/contrib/ntp/ntpd/ntp_crypto.c 1.1.1.3.8.2
|
|
RELENG_6_4
|
|
src/UPDATING 1.416.2.40.2.6
|
|
src/sys/conf/newvers.sh 1.69.2.18.2.9
|
|
src/contrib/ntp/ntpd/ntp_crypto.c 1.1.1.3.8.1.2.1
|
|
RELENG_6_3
|
|
src/UPDATING 1.416.2.37.2.14
|
|
src/sys/conf/newvers.sh 1.69.2.15.2.13
|
|
src/contrib/ntp/ntpd/ntp_crypto.c 1.1.1.3.20.1
|
|
RELENG_7
|
|
src/contrib/ntp/ntpd/ntp_crypto.c 1.1.1.3.18.2
|
|
RELENG_7_1
|
|
src/UPDATING 1.507.2.13.2.5
|
|
src/sys/conf/newvers.sh 1.72.2.9.2.6
|
|
src/contrib/ntp/ntpd/ntp_crypto.c 1.1.1.3.18.1.2.1
|
|
RELENG_7_0
|
|
src/UPDATING 1.507.2.3.2.13
|
|
src/sys/conf/newvers.sh 1.72.2.5.2.13
|
|
src/contrib/ntp/ntpd/ntp_crypto.c 1.1.1.3.22.1
|
|
- -------------------------------------------------------------------------
|
|
|
|
Subversion:
|
|
|
|
Branch/path Revision
|
|
- -------------------------------------------------------------------------
|
|
stable/6/ r187194
|
|
releng/6.4/ r187194
|
|
releng/6.3/ r187194
|
|
stable/7/ r187194
|
|
releng/7.1/ r187194
|
|
releng/7.0/ r187194
|
|
- -------------------------------------------------------------------------
|
|
|
|
VII. References
|
|
|
|
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0021
|
|
http://security.FreeBSD.org/advisories/FreeBSD-SA-09:02.openssl.asc
|
|
|
|
The latest revision of this advisory is available at
|
|
http://security.FreeBSD.org/advisories/FreeBSD-SA-09:03.ntpd.asc
|
|
-----BEGIN PGP SIGNATURE-----
|
|
Version: GnuPG v1.4.9 (FreeBSD)
|
|
|
|
iD8DBQFJbRUfFdaIBMps37IRAqdjAJ42YSH0bjaAJBEVyMM7/em/tu0xUQCfVPrs
|
|
IrH0Qxo4slvboQHsy1PbkN4=
|
|
=Q4rn
|
|
-----END PGP SIGNATURE-----
|