Date: Wed, 7 Mar 2018 11:50:00 +0000 From: David Chisnall <theraven@FreeBSD.org> To: freebsd-security@freebsd.org Subject: Re: [FreeBSD-Announce] FreeBSD Security Advisory FreeBSD-SA-18:02.ntp Message-ID: <3E55483F-40C9-478D-8539-B5B6C3C60FEA@FreeBSD.org> In-Reply-To: <20180307071008.B1366447B@freefall.freebsd.org> References: <20180307071008.B1366447B@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Were these changes and the kernel changes tested together on Xen? After = updating to -p7, I get about 10 seconds of uptime on a Xen VM before the = kernel panics with a double fault and reboots. Disabling ntpd results = in a stable system. On an AMD system without a hypervisor, I don=E2=80=99= t see any instability. David > On 7 Mar 2018, at 07:10, FreeBSD Security Advisories = <security-advisories@freebsd.org> wrote: >=20 > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 >=20 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D > FreeBSD-SA-18:02.ntp Security = Advisory > The FreeBSD = Project >=20 > Topic: Multiple vulnerabilities of ntp >=20 > Category: contrib > Module: ntp > Announced: 2018-03-07 > Credits: Network Time Foundation > Affects: All supported versions of FreeBSD. > Corrected: 2018-02-28 09:01:03 UTC (stable/11, 11.1-STABLE) > 2018-03-07 05:58:24 UTC (releng/11.1, 11.1-RELEASE-p7) > 2018-03-01 04:06:49 UTC (stable/10, 10.4-STABLE) > 2018-03-07 05:58:24 UTC (releng/10.4, 10.4-RELEASE-p6) > 2018-03-07 05:58:24 UTC (releng/10.3, 10.3-RELEASE-p27) > CVE Name: CVE-2018-7182, CVE-2018-7170, CVE-2018-7184, = CVE-2018-7185, > CVE-2018-7183 >=20 > For general information regarding FreeBSD Security Advisories, > including descriptions of the fields above, security branches, and the > following sections, please visit <URL:https://security.FreeBSD.org/>. >=20 > I. Background >=20 > The ntpd(8) daemon is an implementation of the Network Time Protocol = (NTP) > used to synchronize the time of a computer system to a reference time > source. >=20 > II. Problem Description >=20 > The ctl_getitem() function is used by ntpd(8) to process incoming = "mode 6" > packets. A malicious "mode 6" packet can be sent to an ntpd instance, = and > if the ntpd instance is from 4.2.8p6 through 4.2.8p10, ctl_getitem() = will > read past the end of its buffer. [CVE-2018-7182] >=20 > The ntpd(8) service can be vulnerable to Sybil attacks. If a system = is > configured to use a trustedkey and if one is not using the feature = introduced > in ntp-4.2.8p6 allowing an optional 4th field in the ntp.keys file to = specify > which IPs can serve time, a malicious authenticated peer, i.e., one = where the > attacker knows the private symmetric key, can create arbitrarily-many > ephemeral associations in order to win the clock selection of ntpd and = modify > a victim's clock. [CVE-2018-7170] >=20 > The fix for NtpBug2952 was incomplete, and while it fixed one problem = it > created another. Specifically, it drops bad packets before updating = the > "received" timestamp. This means a third-party can inject a packet = with > a zero-origin timestamp, meaning the sender wants to reset the = association, > and the transmit timestamp in this bogus packet will be saved as the = most > recent "received" timestamp. The real remote peer does not know this > value and this will disrupt the association until the association = resets. > [CVE-2018-7184] >=20 > The NTP Protocol allows for both non-authenticated and authenticated > associations, in client/server, symmetric (peer), and several = broadcast > modes. In addition to the basic NTP operational modes, symmetric mode = and > broadcast servers can support an interleaved mode of operation. In > ntp-4.2.8p4, a bug was inadvertently introduced into the protocol = engine that > allows a non-authenticated zero-origin (reset) packet to reset an > authenticated interleaved peer association. If an attacker can send a = packet > with a zero-origin timestamp and the source IP address of the "other = side" of > an interleaved association, the 'victim' ntpd will reset its = association. > The attacker must continue sending these packets in order to maintain = the > disruption of the association. [CVE-2018-7185] >=20 > The ntpq(8) utility is a monitoring and control program for ntpd. The > internal decodearr() function of ntpq(8) that is used to decode an = array in > a response string when formatted data is being displayed. This is a = problem > in affected versions of ntpq if a maliciously-altered ntpd returns an = array > result that will trip this bug, or if a bad actor is able to read an = ntpq(8) > request on its way to a remote ntpd server and forge and send a = response > before the remote ntpd sends its response. It is potentially possible = that > the malicious data could become injectable/executable code. = [CVE-2017-7183] >=20 > III. Impact >=20 > Malicious remote attackers may be able to break time synchornization, > or cause the ntpq(8) utility to crash. >=20 > IV. Workaround >=20 > No workaround is available, but systems not running ntpd(8) or ntpq(8) = are > not affected. Network administrators are advised to implement BCP-38 = which > helps to reduce risk associated with the attacks. >=20 > V. Solution >=20 > Perform one of the following: >=20 > 1) Upgrade your vulnerable system to a supported FreeBSD stable or > release / security branch (releng) dated after the correction date. >=20 > The ntpd service has to be restarted after the update. A reboot is > recommended but not required. >=20 > 2) To update your vulnerable system via a binary patch: >=20 > Systems running a RELEASE version of FreeBSD on the i386 or amd64 > platforms can be updated via the freebsd-update(8) utility: >=20 > # freebsd-update fetch > # freebsd-update install >=20 > The ntpd service has to be restarted after the update. A reboot is > recommended but not required. >=20 > 3) To update your vulnerable system via a source code patch: >=20 > The following patches have been verified to apply to the applicable > FreeBSD release branches. >=20 > a) Download the relevant patch from the location below, and verify the > detached PGP signature using your PGP utility. >=20 > [FreeBSD 11.1] > # fetch https://security.FreeBSD.org/patches/SA-18:02/ntp-11.1.patch > # fetch = https://security.FreeBSD.org/patches/SA-18:02/ntp-11.1.patch.asc > # gpg --verify ntp-11.1.patch.asc >=20 > [FreeBSD 10.4] > # fetch https://security.FreeBSD.org/patches/SA-18:02/ntp-10.4.patch > # fetch = https://security.FreeBSD.org/patches/SA-18:02/ntp-10.4.patch.asc > # gpg --verify ntp-10.4.patch.asc >=20 > [FreeBSD 10.3] > # fetch https://security.FreeBSD.org/patches/SA-18:02/ntp-10.3.patch > # fetch = https://security.FreeBSD.org/patches/SA-18:02/ntp-10.3.patch.asc > # gpg --verify ntp-10.3.patch.asc >=20 > b) Apply the patch. Execute the following commands as root: >=20 > # cd /usr/src > # patch < /path/to/patch >=20 > c) Recompile the operating system using buildworld and installworld as > described in <URL:https://www.FreeBSD.org/handbook/makeworld.html>. >=20 > Restart the applicable daemons, or reboot the system. >=20 > VI. Correction details >=20 > The following list contains the correction revision numbers for each > affected branch. >=20 > Branch/path = Revision > - = ------------------------------------------------------------------------- > stable/10/ = r330141 > releng/10.3/ = r330567 > releng/10.4/ = r330567 > stable/11/ = r330106 > releng/11.1/ = r330567 > - = ------------------------------------------------------------------------- >=20 > To see which files were modified by a particular revision, run the > following command, replacing NNNNNN with the revision number, on a > machine with Subversion installed: >=20 > # svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base >=20 > Or visit the following URL, replacing NNNNNN with the revision number: >=20 > <URL:https://svnweb.freebsd.org/base?view=3Drevision&revision=3DNNNNNN> >=20 > VII. References >=20 > = <URL:http://support.ntp.org/bin/view/Main/SecurityNotice#February_2018_ntp= _4_2_8p11_NTP_S> >=20 > <URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-7182> >=20 > <URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-7170> >=20 > <URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-7184> >=20 > <URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-7185> >=20 > <URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-7183> >=20 > The latest revision of this advisory is available at > <URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-18:02.ntp.asc> > -----BEGIN PGP SIGNATURE----- >=20 > iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAlqfhYNfFIAAAAAALgAo > aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD > MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n > 5cL9GQ/+PLffyegsvxKngL83XWG9UuHbcGG5aWbNwCecTEzNoCI72TI03aga0ge5 > iLz5kW3SQvl8tsq778U4YbfFcCw6ifq2ws8asqNviv+u4AcJh7oD8CS3/kFuA9xM > zjAIrScdNR2taBJhBW3nwlb7RmDeKqydQ3OIxHVvs9Fj5Alc5ZEGezUjC2dueB+M > UdORg6GvHGMYQ+4AtBFRgZHAU3BFkwmgqsIICywYnUVH+AxKj34shs/pMMeJd/d9 > a+BIu/tUjAIlQp23VunNAfq7r2eZik9LOV8Y5l1Ww7+K1IwlwezxI+Iw18BMFEVn > L9baBY9RFh8v/yrZCBqUc7Prhs3ExU/lnAb05Va7TYeD4RXVmSU0jNXi/przN3y2 > PR7Z3JCm60mFKyp0/Hz2MmS1XPBVBrW4P6g9hH8TZmOHb2mZlK3zDXmil7HKp5DK > UhtMJpPEWV9k5rfP8iijHJnwkPr0ALntMUAAKUyw/6isVtHT6BZLaYsZvRYIm8YY > Mn2RUl74m+XoIhQ8R4mxRcaAHwKKXyeyP5nlAs6TQVb9QJukoRiNDr3g8TwbtT54 > iTswVu+z/a89/YIwJoc6Ud7eCZSDYe6qfuC19TVuledayjjy/ZPMH0ZkNWFWJ3AE > VAvdyvoUuNbmsv42o4AUtpE/1CmDqOjwBRZZbtV4CONCDFpk26o=3D > =3DD2ov > -----END PGP SIGNATURE----- > _______________________________________________ > freebsd-announce@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-announce > To unsubscribe, send any mail to = "freebsd-announce-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E55483F-40C9-478D-8539-B5B6C3C60FEA>