• [FreeBSD-Announce] FreeBSD Security Advisory FreeBSD-SA-20:23.sendmsg

    From FreeBSD Security Advisories@21:1/5 to All on Wed Aug 5 18:00:01 2020
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA512

    ============================================================================= FreeBSD-SA-20:23.sendmsg Security Advisory
    The FreeBSD Project

    Topic: sendmsg(2) privilege escalation

    Category: core
    Module: kernel compat32
    Announced: 2020-08-05
    Credits: m00nbsd working with Trend Micro Zero Day Initiative
    Affects: All supported versions of FreeBSD.
    Corrected: 2020-08-05 17:07:13 UTC (stable/12, 12.1-STABLE)
    2020-08-05 17:14:01 UTC (releng/12.1, 12.1-RELEASE-p8)
    2020-08-05 17:08:02 UTC (stable/11, 11.4-STABLE)
    2020-08-05 17:14:01 UTC (releng/11.4, 11.4-RELEASE-p2)
    2020-08-05 17:14:01 UTC (releng/11.3, 11.3-RELEASE-p12)
    CVE Name: CVE-2020-7460

    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

    FreeBSD provides the compat32 subsystem, used to enable execution of 32-bit binaries on amd64 and other 64-bit platforms. System calls whose parameters require translation are handled by compat32 before being dispatched to the native system call handler.

    sendmsg(2) and recvmsg(2) may be used to transmit or receive control messages whose contents are evaluated by the kernel. Such messages have different alignment constraints on 32-bit and 64-bit platforms and thus must be translated
    by the compat32 subsystem when sendmsg(2) or recvmsg(2) are invoked by a 32-bit process.

    II. Problem Description

    When handling a 32-bit sendmsg(2) call, the compat32 subsystem copies the control message to be transmitted (if any) into kernel memory, and adjusts alignment of control message headers. The code which performs this work contained a time-of-check to time-of-use (TOCTOU) vulnerability which allows a malicious userspace program to modify control message headers after they were validated by the kernel.

    III. Impact

    The TOCTOU bug can be exploited by an unprivileged malicious userspace program to trigger privilege escalation.

    IV. Workaround

    i386 and other 32-bit platforms are not vulnerable.

    No workaround is available for amd64 or arm64. Kernels compiled without the COMPAT_FREEBSD32 option are not vulnerable, but this option is configured in GENERIC kernels.

    V. Solution

    Upgrade your vulnerable system to a supported FreeBSD stable or
    release / security branch (releng) dated after the correction date,
    and reboot.

    Perform one of the following:

    1) 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
    # shutdown -r +10min "Rebooting for a security update"

    2) 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-20:23/sendmsg.patch
    # fetch https://security.FreeBSD.org/patches/SA-20:23/sendmsg.patch.asc
    # gpg --verify sendmsg.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.

    VI. Correction details

    The following list contains the correction revision numbers for each
    affected branch.

    Branch/path Revision
    - ------------------------------------------------------------------------- stable/12/ r363918 releng/12.1/ r363923 stable/11/ r363919 releng/11.4/ r363923 releng/11.3/ r363923
    - -------------------------------------------------------------------------

    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-2020-7460>

    The latest revision of this advisory is available at <URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-20:23.sendmsg.asc> -----BEGIN PGP SIGNATURE-----

    iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl8q63hfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n 5cJDxw/+PML4MB46paBDyLvebprXe5Z/FrUN1ybH8YjrJTYFyX+aw8K3hAa2K+PB kUc3VwbIv0BAylSCgULXdTxx8JKpMnmHcN3Bk8LKdMCvp0gJvkzcAP/a7Kj1EKfY m04p3/7ka9f7u99n1QX1jnZP2XWEFKOoyWbEJWuDk0+NBW3ICQWqQLoiXaWAS4HD BrXAqowtyoR1vaMrAjmSyWaFSDFjQeiHw8nxCzRF1E6cKF/rwCt37cnpEGqSCAYi /ZyB1qy1s67F9hHnZp9+JhffWqUZAuLse8HTWgBG+svpzDrx2gNxE/C/Tui0lYXg S3akC3DbiySZpP007J8yR5PvytYAbSuECJVVRoC0dukmBabFqSFlacInpfIn363m fOg1nmq/oRh9MAJzaBKG+N6SD+mP3kvcV9Ad5fOKr4yLQtlwYEYyiN1WbCs0O/ve fnRIGB9xtibIr1i9IEY7+KNMAH3Di2F0E4ixFPMrBcJiStuZmCTqJRx99QLYtb0G p9p1bzjPUaWAMDi9mteFu1I+NO836MeLydbCZnSa5KLe+vc1PjP4kSvt6XQ9HFtO nXMddWxdcus8BmxZ04K5a4WaaSYOiN4e4O72WWuA714io+EWJAEaqleMr7KbYTCv f1fCmoKxyoFJcHL9z3oOOi5DqrBoFPnE0p/gPGFc8qyTNEbI428=
    =tTSr
    -----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"

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)