Add SA-17:04.
This commit is contained in:
parent
d520e87cf4
commit
7f49f4226c
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=50208
4 changed files with 183 additions and 0 deletions
147
share/security/advisories/FreeBSD-SA-17:04.ipfilter.asc
Normal file
147
share/security/advisories/FreeBSD-SA-17:04.ipfilter.asc
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
|
Hash: SHA512
|
||||||
|
|
||||||
|
=============================================================================
|
||||||
|
FreeBSD-SA-17:04.ipfilter Security Advisory
|
||||||
|
The FreeBSD Project
|
||||||
|
|
||||||
|
Topic: ipfilter(4) fragment handling panic
|
||||||
|
|
||||||
|
Category: contrib
|
||||||
|
Module: ipfilter
|
||||||
|
Announced: 2017-04-27
|
||||||
|
Credits: Cy Schubert
|
||||||
|
Affects: All supported versions of FreeBSD.
|
||||||
|
Corrected: 2017-04-21 01:51:49 UTC (stable/11, 11.0-STABLE)
|
||||||
|
2017-04-27 06:52:30 UTC (releng/11.0, 11.0-RELEASE-p10)
|
||||||
|
2017-04-21 01:51:49 UTC (stable/10, 10.3-STABLE)
|
||||||
|
2017-04-27 06:52:30 UTC (releng/10.3, 10.3-RELEASE-p19)
|
||||||
|
CVE Name: CVE-2017-1081
|
||||||
|
|
||||||
|
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/>.
|
||||||
|
|
||||||
|
I. Background
|
||||||
|
|
||||||
|
IP Filter, also known as ipfilter(4), is a cross-platform, open source packet
|
||||||
|
filter (firewall) originally written for BSD operating systems, including
|
||||||
|
FreeBSD, NetBSD, and OpenBSD, and for Solaris. ipfilter(4) is one of three
|
||||||
|
firewalls included in FreeBSD (the others being ipfw(4) and pf(4)). It
|
||||||
|
performs firewall and NAT functions using the pfil(9) framework as do the
|
||||||
|
other firewalls in FreeBSD in the kernel.
|
||||||
|
|
||||||
|
II. Problem Description
|
||||||
|
|
||||||
|
ipfilter(4), capable of stateful packet inspection, using the "keep state"
|
||||||
|
or "keep frags" rule options, will not only maintain the state of
|
||||||
|
connections, such as TCP streams or UDP communication, it also maintains
|
||||||
|
the state of fragmented packets. When a packet fragments are received they
|
||||||
|
are cached in a hash table (and linked list). When a fragment is received it
|
||||||
|
is compared with fragments already cached in the hash table for a match. If
|
||||||
|
it does not match the new entry is used to create a new entry in the hash
|
||||||
|
table. If on the other hand it does match, unfortunately the wrong entry is
|
||||||
|
freed, the entry in the hash table. This results in use after free panic
|
||||||
|
(and for a brief moment prior to the panic a memory leak due to the wrong
|
||||||
|
entry being freed).
|
||||||
|
|
||||||
|
III. Impact
|
||||||
|
|
||||||
|
Carefully feeding fragments that are allowed to pass by an ipfilter(4)
|
||||||
|
firewall can be used to cause a panic followed by reboot loop denial of
|
||||||
|
service attack.
|
||||||
|
|
||||||
|
IV. Workaround
|
||||||
|
|
||||||
|
No workaround is available, but systems not using ipfilter(4) are not
|
||||||
|
vulnerable. A default installation doesn't enable ipfilter(4).
|
||||||
|
ipfilter(4) configurations not using "keep state" pr "keep frags" are not
|
||||||
|
vulnerable. Users may be able to temporarily replace stateful inspection
|
||||||
|
with stateless rules however this is not as secure as stateful inspection.
|
||||||
|
|
||||||
|
V. Solution
|
||||||
|
|
||||||
|
Perform one of the following:
|
||||||
|
|
||||||
|
1) Upgrade your vulnerable system to a supported FreeBSD stable or
|
||||||
|
release / security branch (releng) dated after the correction date.
|
||||||
|
|
||||||
|
Reload the ipl.ko kernel module or reboot the system.
|
||||||
|
|
||||||
|
2) To update your vulnerable system via a binary patch:
|
||||||
|
|
||||||
|
Systems running a RELEASE version of FreeBSD on the i386 or amd64
|
||||||
|
platforms can be updated via the freebsd-update(8) utility:
|
||||||
|
|
||||||
|
# freebsd-update fetch
|
||||||
|
# freebsd-update install
|
||||||
|
|
||||||
|
Reload the ipl.ko kernel module or reboot the system.
|
||||||
|
|
||||||
|
3) To update your vulnerable system via a source code patch:
|
||||||
|
|
||||||
|
The following patches have been verified to apply to the applicable
|
||||||
|
FreeBSD release branches.
|
||||||
|
|
||||||
|
a) Download the relevant patch from the location below, and verify the
|
||||||
|
detached PGP signature using your PGP utility.
|
||||||
|
|
||||||
|
# fetch https://security.FreeBSD.org/patches/SA-17:04/ipfilter.patch
|
||||||
|
# fetch https://security.FreeBSD.org/patches/SA-17:04/ipfilter.patch.asc
|
||||||
|
# gpg --verify ipfilter.patch.asc
|
||||||
|
|
||||||
|
b) Apply the patch. Execute the following commands as root:
|
||||||
|
|
||||||
|
# cd /usr/src
|
||||||
|
# patch < /path/to/patch
|
||||||
|
|
||||||
|
c) Recompile your kernel as described in
|
||||||
|
<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the
|
||||||
|
system or reload the ipl.ko kernel module.
|
||||||
|
|
||||||
|
VI. Correction details
|
||||||
|
|
||||||
|
The following list contains the correction revision numbers for each
|
||||||
|
affected branch.
|
||||||
|
|
||||||
|
Branch/path Revision
|
||||||
|
- -------------------------------------------------------------------------
|
||||||
|
stable/10/ r317241
|
||||||
|
releng/10.3/ r317487
|
||||||
|
stable/11/ r317241
|
||||||
|
releng/11.0/ r317487
|
||||||
|
- -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
|
||||||
|
|
||||||
|
Or visit the following URL, replacing NNNNNN with the revision number:
|
||||||
|
|
||||||
|
<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>
|
||||||
|
|
||||||
|
VII. References
|
||||||
|
|
||||||
|
<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1081>
|
||||||
|
|
||||||
|
The latest revision of this advisory is available at
|
||||||
|
<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-17:04.ipfilter.asc>
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Version: GnuPG v2.1.20 (FreeBSD)
|
||||||
|
|
||||||
|
iQIzBAEBCgAdFiEEHPf/b631yp++G4yy7Wfs1l3PaucFAlkBlbAACgkQ7Wfs1l3P
|
||||||
|
auejpBAAtsITE8qn04H5gT8EGq/ntkN8DQydmVHn0OpmwDGg/XD4Wrwye8jqHhFb
|
||||||
|
XdOj5aMb0QbEK3WjDZwbvHNqTkyzl5QXc3PPs7V5mHdYGHsMRWvSyXutRmopgmsp
|
||||||
|
ee59qLeKxvWGss0gqkUWZQQcbdIVN8hTXnumBZ8ncrpjluaYZuO8DvyZQ1Cy4f+f
|
||||||
|
sd6PCZHemjs4MtSriV4AKOtM1QPuBQEkrQ6clA5j55Txk6fkcy1CUoyP0KmW20Iu
|
||||||
|
VFY/UyrfvbVDgbsFMMFsSn/F9DlKVLLtgjpXqztuOu1QhLbAs7spMnUjRnilfOE6
|
||||||
|
rsyOh26sjEIlQ3sNf7IrFsXdoqLWgn7CDToZEk5xfyv7MyEuEd5INfAkcLz9Mcp+
|
||||||
|
AymVRmC29CDt8dIJlEaXPyYXDLx5PGPB+SUR2VghzPQkHM9X9EOnJcVEbAn3QnQ1
|
||||||
|
sFkh4mlsh3cQ9iw2+RYzIybgBzv0OjxIasU3QtnbRNXgdNVnoV/yTeEUFSyVzvC2
|
||||||
|
6JcjJCq7WZ3U9EBKbPoVzRBsHAal/3EWMnXMprcdNPuxjd+9357K5OnMXiP9ab9G
|
||||||
|
KthAVRN1y+bZ/SNEtqE/T1vrxH9JV/BEqQjtx+DMp7v7TzGgK8rqSJT8H/bIu2h3
|
||||||
|
IecRnQRkDipqITFQKSoPiqJZeuoVcXaYw8Cp5gUpL618m4DwZ3w=
|
||||||
|
=C7OI
|
||||||
|
-----END PGP SIGNATURE-----
|
11
share/security/patches/SA-17:04/ipfilter.patch
Normal file
11
share/security/patches/SA-17:04/ipfilter.patch
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- sys/contrib/ipfilter/netinet/ip_frag.c.orig
|
||||||
|
+++ sys/contrib/ipfilter/netinet/ip_frag.c
|
||||||
|
@@ -474,7 +474,7 @@
|
||||||
|
IPFR_CMPSZ)) {
|
||||||
|
RWLOCK_EXIT(lock);
|
||||||
|
FBUMPD(ifs_exists);
|
||||||
|
- KFREE(fra);
|
||||||
|
+ KFREE(fran);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
17
share/security/patches/SA-17:04/ipfilter.patch.asc
Normal file
17
share/security/patches/SA-17:04/ipfilter.patch.asc
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Version: GnuPG v2.1.20 (FreeBSD)
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEEHPf/b631yp++G4yy7Wfs1l3PaucFAlkBlcIACgkQ7Wfs1l3P
|
||||||
|
audqyBAAgRyBZtlZ8/VZ/nF+JG/aIutr2sQrgIrKT7/3Tnc3fU/+gN35T44A2pjD
|
||||||
|
04mtVe1LsBxNnyeqjb5sxu/ppFgmT6JxhVpARAey7m8fJS0VPbk6K57RtbQUAOTZ
|
||||||
|
B54VE15y+Eh8MAveJvnxd5gqjxZW69j3jpZ5aIKYOWoIWNs+OeOu8x4HAyVGPksA
|
||||||
|
L93+AqbRRN56t++ief6SCTErukWjj6HYF1KSf+9CDncouMgKY2e4+Dr6I1fmNOUg
|
||||||
|
tCZDtnyOM6dcxVI+dz4I88xl3RpGSPZFaXgVpkbeLw8NO+w6g8OV7wPqTPZ+WvdC
|
||||||
|
pQ/A2MDUJgNWrLFHYUwdra/RENi6pYjixiTK4Qv7bN8QBGQcFdDU53HAco/yT3pe
|
||||||
|
6G1nz+SVYtJRjUGPOeej1YtFxTFSI/I0ACo3S7ohDTy4BbAeTHb3s2OXaNUQGxE2
|
||||||
|
KwvwCatsqX74FDkSXlk4bYaCFJNI/8mL3W+lkSxOkJX4d+lsxI/iBcBNmphzBM5A
|
||||||
|
WGPtvBnXVNhLRe2o0KNFL7KGp/2es8EZjhf23G9bU3faUCoSgLEQADSz2UVfw7+O
|
||||||
|
EjjtNHR0ZDKi7FTJhwLfokE3151mMjD04D8V0Tw68TeoUFJE1//AzElxEH/gxufi
|
||||||
|
bjhA1kK7+Z6ML5uZke+nYpUvyolmYJitmmGFd+HObFDfUEn4Nks=
|
||||||
|
=wUgH
|
||||||
|
-----END PGP SIGNATURE-----
|
|
@ -10,6 +10,14 @@
|
||||||
<month>
|
<month>
|
||||||
<name>4</name>
|
<name>4</name>
|
||||||
|
|
||||||
|
<day>
|
||||||
|
<name>27</name>
|
||||||
|
|
||||||
|
<advisory>
|
||||||
|
<name>FreeBSD-SA-17:04.ipfilter</name>
|
||||||
|
</advisory>
|
||||||
|
</day>
|
||||||
|
|
||||||
<day>
|
<day>
|
||||||
<name>12</name>
|
<name>12</name>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue