• Polkit flaw

    From Sean Dennis@618:618/10 to All on Wednesday, January 26, 2022 11:42:12
    [ Yes, that is the correct URL. -- SD ]

    From:
    https://www.theregister.com/2022/01/26/pwnkit_vulnerability_linuix/

    Linux distros haunted by Polkit-geist for 12+ years: Bug grants root access to
    any user

    What happens when argc is zero and a SUID program doesn't care? Let's find out!

    Thomas Claburn in San Francisco Wed 26 Jan 2022 // 01:02 UTC

    ----------------------------------------------------------------------

    Linux vendors on Tuesday issued patches for a memory corruption
    vulnerability in a component called polkit that allows an unprivileged
    logged-in user to gain full root access on a system in its default
    configuration.

    Security vendor Qualys found the flaw and published details in a
    coordinated disclosure.

    [84]Polkit, previously known as PolicyKit, is a tool for setting up
    policies governing how unprivileged processes interact with privileged
    ones. The vulnerability resides within polkit's pkexec, a [85]SUID-root
    program that's installed by default on all major Linux distributions.
    Designated CVE-2021-4034, the vulnerability has been given a [86]CVSS
    score of 7.8.

    Bharat Jogi, director of vulnerability and threat research at Qualys,
    explained in a [88]blog post that the pkexec flaw opens the door to root
    privileges for an attacker. Qualys researchers, he said, have demonstrated
    exploitation on default installations of Ubuntu, Debian, Fedora, and
    CentOS, and other Linux distributions are presumed to be vulnerable as
    well.

    "This vulnerability has been hiding in plain sight for 12+ years and
    affects all versions of pkexec since its first version in May 2009," said
    Jogi, pointing to commit c8c3d83, which added a pkexec command.

    The problem occurs when pkexec's main() function processes command-line
    arguments and argc - the ARGument Count - is zero. The function tries to
    access the list of arguments anyway, and ends up trying to use an empty
    argv - the ARGument Vector of command-line argument strings. As a result,
    out-of-bounds memory gets read and written, which an attacker can exploit
    to inject an environment variable that can cause arbitrary code to be
    loaded from storage and run by the program as root.

    "This out-of-bounds write allows us to re-introduce an 'unsecure'
    environment variable (for example, LD_PRELOAD) into pkexec's environment,"
    explains Jogi. "These 'unsecure' variables are normally removed (by ld.so)
    from the environment of SUID programs before the main() function is
    called."

    The fact that these variables can be reintroduced leaves the code
    vulnerable. At least [96]the exploitation technique proposed by Qualys -
    injecting the GCONV_PATH variable into pkexec's environment to execute a
    shared library as root - leaves traces in log files.

    Jogi said that polkit also works with non-Linux operating systems such as
    Solaris and BSD. Those systems have not been tested for exploitability but
    OpenBSD, he said, is not affected because the kernel won't execve() -
    execute a program by its pathname - if argc is 0.

    Patches are available for various distributions, including [97]Red Hat and
    [98]Ubuntu. This isn't something you'll want to leave untended
    particularly if you run a multi-user system. (R)

    ----------------------------------------------------------------------

    Links:
    84. https://wiki.archlinux.org/title/Polkit
    85. https://linux.die.net/man/1/pkexec
    86. https://access.redhat.com/security/cve/CVE-2021-4034
    88. https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034

    96. https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt
    97. https://access.redhat.com/security/vulnerabilities/RHSB-2022-001
    98. https://ubuntu.com/security/notices/USN-5252-1

    ... All's well that ends.
    ___ MultiMail/FreeBSD v0.52

    --- Maximus/2 3.01
    * Origin: Outpost BBS // bbs.outpostbbs.net:10123 (618:618/10)