-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 ============================================================================= FreeBSD-EN-19:19.loader Errata Notice The FreeBSD Project Topic: UEFI Loader Memory Fragmentation Category: core Module: loader Announced: 2019-11-12 Credits: Rebecca Cran Affects: FreeBSD 12.0 and later Corrected: 2019-09-27 05:12:28 UTC (stable/12, 12.1-STABLE) 2019-11-12 18:10:26 UTC (releng/12.1, 12.1-RELEASE-p1) 2019-11-12 18:10:26 UTC (releng/12.0, 12.0-RELEASE-p12) 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 Prior to executing the kernel, the UEFI loader must obtain the final memory map from the firmware and pass it to the kernel for consumption. II. Problem Description Allocating memory to retrieve the memory map may cause further fragmentation in the memory map. This fragmentation may cause the memory map to grow enough for the previously allocated memory to no longer be sufficient to hold the memory map. In this case, the UEFI loader would simply fail to boot the kernel instead of reallocating and attempting to fetch the memory map again. III. Impact Some systems may intermittently fail to boot due to this fragmentation, and require a restart. IV. Workaround No workaround is available. Systems that are not configured to boot via the UEFI loader are not affected, and not all systems that are configured to boot via the UEFI loader will exhibit this behavior. V. Solution Upgrade your system to a supported FreeBSD stable or release / security branch (releng) dated after the correction date. Perform one of the following: 1) 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 2) To update your 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. [FreeBSD 12.x] # fetch https://security.FreeBSD.org/patches/EN-19:19/loader.patch # fetch https://security.FreeBSD.org/patches/EN-19:19/loader.patch.asc # gpg --verify loader.patch.asc b) Apply the patch. Execute the following commands as root: # cd /usr/src # patch < /path/to/patch c) Recompile the operating system using buildworld and installworld as described in . If the system was first installed with FreeBSD 12.0 or later a copy of the EFI loader is installed as \EFI\freebsd\loader.efi on the EFI System Partition (ESP). In that case mount the ESP and copy /boot/loader.efi to \EFI\freebsd\loader.efi. VI. Correction details The following list contains the correction revision numbers for each affected branch. Branch/path Revision - ------------------------------------------------------------------------- stable/12/ r352788 releng/12.1/ r354652 releng/12.0/ r354652 - ------------------------------------------------------------------------- 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: VII. References The latest revision of this advisory is available at -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl3K+jlfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n 5cKo6hAAlrPVQSTQ+PGu9YtAdLG/0NZlIRdFNyjqKekkQDSEQnh35MKzVrZW4mmu 12pM2ELRU3e4HZbZEXi0B98HAqGrbSrlXHKAwosMMmhrkNBXU+fUQcjbxHfEiRoE oXPhYNTQD+7ph3A2CO0mGi5d5aSdMeZqr6ayJvmlEzg/Btd0v/SnB5XWRw0c3xP2 bCfXqS8ne2Nc0LCMzAoC69b/HQr/hi45ukbkexON+vUH0wB8N3QzwtjtZYXNMCoD T7w5FsW6ZnPqTFVNfQfIT9DUZCE0TJ4HD3D2GNX9rs8tvetgWpE7sXbRbRb87MIR zt85nwyriVjovbi24oyMgmjFgIqteRqDBG96XEWWB6YhHrOPoXd76RaOStX2r4yj q01i+lNNb5P0mqTvHQWx7XyDlhzVJsZEK6UyeFKT8WWarrFQ5FzLU3Fdr3G9pRAb 1VZJCW6GgEYlOxMBVHANtUJi3JTCWSG7vw2GNLkpwHfhpPDSV8wSKNVcpTjzHS5K 9u5iLsfNl3RtA1qD2/PPVyz12au045+WjAzlWzR8ioivRF8KwqKuwFdSUpVGcIDm +y5YOanAgT2LxpNLf0ZbHmAZaR5kCtBDGuDFW6+z2zPHaea9opIprutgqERzc9Es XHh3M29OeO457JiU/yTliLraObpf0rEFUG7d30TDO1wywR/ehlM= =ayk8 -----END PGP SIGNATURE-----