-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 ============================================================================= FreeBSD-EN-14:02.mmap Errata Notice The FreeBSD Project Topic: mmap should not coalesce stack entry Category: core Module: kernel Announced: 2014-01-14 Credits: Konstantin Belousov Affects: All supported versions of FreeBSD. Corrected: 2013-12-30 08:57:54 UTC (stable/10, 10.0-PRERELEASE) 2013-12-31 08:02:34 UTC (releng/10.0, 10.0-RC4) 2013-12-31 08:02:34 UTC (releng/10.0, 10.0-RC3-p1) 2013-12-31 08:02:34 UTC (releng/10.0, 10.0-RC2-p1) 2013-12-31 08:02:34 UTC (releng/10.0, 10.0-RC1-p1) 2013-12-30 09:04:06 UTC (stable/9, 9.2-STABLE) 2014-01-14 19:42:28 UTC (releng/9.2, 9.2-RELEASE-p3) 2014-01-14 19:42:28 UTC (releng/9.1, 9.1-RELEASE-p10) 2014-01-14 19:33:28 UTC (stable/8, 8.4-STABLE) 2014-01-14 19:42:28 UTC (releng/8.4, 8.4-RELEASE-p7) 2014-01-14 19:42:28 UTC (releng/8.3, 8.3-RELEASE-p14) For general information regarding FreeBSD Errata Notices and Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit . I. Background The FreeBSD virtual memory system allows growing stack by mapping anonymous memory region on top of a stack via mmap(2) system call with MAP_STACK bit enabled in flags parameter. II. Problem Description The FreeBSD virtual memory system tries to coalesce adjacent memory regions into one single object when possible. When growing the stack via mmap(2), it will also try to coalesce the newly allocated memory into the existing object. This would result in a failed assertion later in vm_map_stack(), which expects that a new object is returned. III. Impact The system will panic when this happens. IV. Workaround No workaround is available. V. Solution Perform one of the following: 1) Upgrade your system to a supported FreeBSD stable or release / security branch (releng) dated after the correction date. 2) To update your present 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 http://security.FreeBSD.org/patches/EN-14:02/mmap.patch # fetch http://security.FreeBSD.org/patches/EN-14:02/mmap.patch.asc # gpg --verify mmap.patch.asc b) Apply the patch. # cd /usr/src # patch < /path/to/patch c) Recompile your kernel as described in and reboot the system. 3) To update your 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 VI. Correction details The following list contains the revision numbers of each file that was corrected in FreeBSD. Branch/path Revision - ------------------------------------------------------------------------- stable/8/ r260645 releng/8.3/ r260647 releng/8.4/ r260647 stable/9/ r260082 releng/9.1/ r260647 releng/9.2/ r260647 stable/10/ r260081 releng/10.0/ r260122 - ------------------------------------------------------------------------- VII. References The latest revision of this Errata Notice is available at http://security.FreeBSD.org/advisories/FreeBSD-EN-14:02.mmap.asc -----BEGIN PGP SIGNATURE----- iQIcBAEBCgAGBQJS1ZSuAAoJEO1n7NZdz2rnsPoQAIFs/URebviZjkMpYJBTahwe Lr50uJSZIlW2nMvi+urLJAB15fJm/WHDdHqp6+WHh5jjCozb45CoIxDFnP5UB4q8 oclsQtKrt4R1dBDEa3RZQoJEm6DIk1YhfAfUtJMhDpROlvWCbBMzZWJbVQec5j3E iyhY1FIl/BD4KWFw/hDhJX5j4HQWA/oZDagx5WZFMsFapq5rOXkC/fq3YHkTJBeW 7YEvAyTuZoj9zBVJ28cEYr7+ULtJMphBdTEzAhFZSEegsM+qyMafTf2c54MdtWR0 pSgoh9i+cSXj444e4eeqLp6LwapW5YGIrKpAmBUwTECBg5F5915i2h8ddCnmJJSM 4Wq7bXJU6PGzFXTDUsAw9HB2HcCMU2EvVNhtM3wp7dSzojLpvrgEoRZKwanu32r1 cuN/awHUGA1fzoUkxMygzT5B44IX+9gyT8lJ4N+PfKGnSO00WY41XkLheDmpgf2b euDrzTSwbupEp70lT45CW6DUlqPXpw0Fn5vyNYBvoaAXineqyvwMkQ6YZwoNmfiU xv2zjY40RkOR8EJKi8L1moBQsfh/i6rtVQhDIHmAU/1VaYBE4zVXS5BYAlUaUJgw 3rc5ho+F2BB+YV+HeaWszjW+NVhiIswpccw4Js7O2HQUA9M2KEq2+DXRtNdEa8/j miG/hWqsuoWjAcrQKjKw =rOvi -----END PGP SIGNATURE-----