Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1310 CNY

100%

CVE-2021-4034 PoC — polkit 缓冲区错误漏洞

Source
Associated Vulnerability
Title:polkit 缓冲区错误漏洞 (CVE-2021-4034)
Description:A local privilege escalation vulnerability was found on polkit's pkexec utility. The pkexec application is a setuid tool designed to allow unprivileged users to run commands as privileged users according predefined policies. The current version of pkexec doesn't handle the calling parameters count correctly and ends trying to execute environment variables as commands. An attacker can leverage this by crafting environment variables in such a way it'll induce pkexec to execute arbitrary code. When successfully executed the attack can cause a local privilege escalation given unprivileged users administrative rights on the target machine.
Description
CVE-2021-4034 POC exploit
Readme
## pwnkit (CVE-2021-4034) Privilege Escalation exploit sample

This repository contains an exploit of CVE-2021-4034, a local
privilege escalation in `pkexec`. This implementation is based on that
described in the [CVE
disclosure](https://marc.info/?l=oss-security&m=164313339424946&w=2), which you should read.

If this works on your machine, it means you are vulnerable. To address
this, either update polkit to a patched version, or disable the `setuid`
bit on `pkexec` with the following:

```
$ sudo chmod a-s $(which pkexec)
```

This exploit is dangerously easy to write based on the information in
the disclosure, so patch all of your machines ASAP.

### Using this repo 

To run this exploit, simply run `make` in the top level
directory. This will:
- compile `exploit.c`, which runs the exploit
- compile `gconv/badconv.c`, which contains the payload
- Run `./exploit`

If this drops you into a shell as root, your system is vulnerable. 

If you get the following output, you succesfully mitigated the bug
using the above `chmod` command:

```
Running exploit...
GLib: Cannot convert message: Could not open converter from “UTF-8” to “ZT”
pkexec must be setuid root
```

If you get the `pkexec` help message as the output, your system was
likely already patched.

This implementation _should_ work on any vulnerable systems, including
Fedora 34+ and some versions of OpenSUSE which seem to not be
vulnerable to some implementations. Specifically, this will work even
if your system has a version of polkit which disables GVFS ([added
here](https://gitlab.freedesktop.org/polkit/polkit/-/commit/daf3d5c2d15466a267221fcb099c59c870098e03)). That
being said, I have no formal experience with computer security and it
may report that your system is patched, even if it is still vulnerable
to this or other similar exploits. As such, you should make sure that
you keep your systems updated, listen to the people who know what they
are talking about, and always eat your vegetables.
File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →