Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² PHP, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ CGI

Π’ PHP выявлСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2024-4577), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ выполнСния своСго ΠΊΠΎΠ΄Π° Π½Π° сСрвСрС ΠΈΠ»ΠΈ просмотра исходного ΠΊΠΎΠ΄Π° PHP-скрипта Π² случаС использования PHP Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ CGI Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Windows (ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с mod_php, php-fpm ΠΈ FastCGI уязвимости Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹). ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° устранСна Π² выпусках PHP 8.3.8, 8.2.20 ΠΈ 8.1.29.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ являСтся частным случаСм исправлСнной Π² 2012 Π³ΠΎΠ΄Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ CVE-2012-1823, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ оказалось нСдостаточно для блокирования Π°Ρ‚Π°ΠΊΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Windows. ΠœΠ΅Ρ‚ΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ сводится ΠΊ возмоТности подстановки Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΡ€ΠΈ запускС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° PHP Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΡŽ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ запроса ΠΊ PHP-скрипту.

Π’ старой уязвимости CVE-2012-1823 для эксплуатации достаточно Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки вмСсто ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «http://localhost/index.php?-s» для ΠΏΠΎΠΊΠ°Π·Π° исходного ΠΊΠΎΠ΄Π° скрипта. Новая ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ основываСтся Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Windows обСспСчиваСт автоматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ символов, Ρ‡Ρ‚ΠΎ позволяСт для ΠΎΠ±Ρ…ΠΎΠ΄Π° Ρ€Π°Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ символы, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… ΠΈ замСняСмыС Π½Π° символ «-» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, http://localhost/index.php?%ads).

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π° Π² конфигурациях с локалями для Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ китайского (cp950), ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ китайского (cp936) ΠΈ японского (cp932) языков, Π½ΠΎ Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π΅Ρ‘ проявлСниС ΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ локалями. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° проявляСтся Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Π½Π°Π±ΠΎΡ€Π΅ XAMPP (Apache + MariaDB + PHP + Perl), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² Π»ΡŽΠ±Ρ‹Ρ… конфигурациях Apache, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… php-cgi выставлСн Π² качСствС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° CGI-скриптов ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ настройки
‘Action cgi-script «/cgi-bin/php-cgi.exe»‘ ΠΈΠ»ΠΈ ‘Action application/x-httpd-php-cgi «/php-cgi/php-cgi.exe»‘, ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ нСпосрСдствСнном Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° php Π² «/cgi-bin» ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ CGI-скриптов Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ ScriptAlias.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Π² обновлСниях PHP 8.3.8, 8.2.20 ΠΈ 8.1.29 устранСны Π΅Ρ‰Ρ‘ Ρ‚Ρ€ΠΈ уязвимости:

  • CVE-2024-5458 — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°
    FILTER_VALIDATE_URL, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ filter_var.

  • CVE-2024-5585 — Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π°Ρ‚Π°ΠΊΠΈ Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ CVE-2024-1874, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ€Π°Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ подстановку ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ bat- ΠΈ cmd-Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ proc_open Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Windows (ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ BatBadBut).
  • ΠŸΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ openssl_private_decrypt Π°Ρ‚Π°ΠΊΠ΅ Marvin.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru