
CVE-2012-1823 - PHP CGI Argument Injection Remote Code Execution (RCE)
Серьезность: Критическая (CVSS 9.8)
CVE: CVE-2012-1823
Опубликовано: 11 мая 2012 г.
Затронутое ПО: PHP, работающий в режиме CGI (php-cgi)
Тип уязвимости: Внедрение аргументов / удаленное выполнение кода (RCE)
Вектор атаки: Сеть
Требуется аутентификация: Нет
CVE-2012-1823 — одна из самых значительных уязвимостей удаленного выполнения кода, когда-либо обнаруженных в PHP. Уязвимость затрагивает установки PHP, настроенные для выполнения через общий шлюзовый интерфейс (CGI), что позволяет неаутентифицированному атакующему удаленно выполнять произвольный PHP-код.
В отличие от уязвимостей, требующих ошибок в веб-приложении, эта проблема существует внутри самого PHP при его развертывании с использованием php-cgi. Поскольку уязвимость находится на уровне интерпретатора, каждое PHP-приложение, размещенное на затронутом сервере, становится уязвимым, независимо от того, содержит ли приложение ошибки в коде.
Уязвимость получила широкую огласку в 2012 году благодаря своей простоте, надежности и массовой эксплуатации в Интернете. Даже спустя годы после раскрытия сканирования Интернета продолжают выявлять уязвимые системы, и уязвимость остается включенной в фреймворки эксплуатации и средства защитного обнаружения. :contentReference[oaicite:0]{index=0}
Уязвимость существует в реализации CGI в PHP (php-cgi).
Обычно параметры HTTP-запроса предназначены для передачи PHP-скриптам в качестве пользовательского ввода.
Однако PHP некорректно обрабатывает специально сформированные строки запроса, которые не содержат знака равенства (=).
Вместо того чтобы рассматривать строку запроса исключительно как пользовательские данные, PHP ошибочно интерпретирует ее части как аргументы командной строки, переданные непосредственно исполняемому файлу PHP.
Поскольку PHP поддерживает множество переключателей командной строки (таких как -d), атакующий может переопределить параметры конфигурации времени выполнения PHP в процессе обработки запроса.
Это позволяет атакующему:
Основная причина — некорректная обработка php_getopt() внутри:
sapi/cgi/cgi_main.c
В частности, PHP не смог корректно игнорировать разбор командной строки при обработке злонамеренных строк запроса, в которых отсутствует знак равенства (=). :contentReference[oaicite:1]{index=1}
Исполняемый файл CGI принимает параметры командной строки.
Например:
php-cgi -d allow_url_include=1
Обычно эти параметры должны поступать только от операционной системы.
Вместо этого PHP некорректно позволял HTTP-запросам внедрять эти параметры через специально сформированные URL.
Таким образом, атакующий мог управлять конфигурацией времени выполнения PHP до выполнения целевого скрипта.
Это фактически превращало простой HTTP-запрос в выполнение командной строки для php-cgi.
Следующие выпуски PHP уязвимы:
| Версия | Статус |
|---|---|
| PHP < 5.3.12 | Уязвим |
| PHP 5.4.x < 5.4.2 | Уязвим |
Затронуты только установки, использующие режим CGI (php-cgi).
PHP, работающий как:
в целом не подвержены влиянию CVE-2012-1823. :contentReference[oaicite:2]{index=2}
Атакующему требуется только:
Уязвимость полностью эксплуатируется удаленно.
Атака обычно проходит следующие этапы:
После получения выполнения кода атакующие обычно:
Успешная эксплуатация приводит к полной компрометации PHP-приложения.
Возможные последствия включают:
Если PHP выполняется с повышенными привилегиями, возможна также компрометация уровня системы.
| Метрика | Значение |
|---|---|
| Базовая оценка | 9.8 |
| Серьезность | Критическая |
| Вектор атаки | Сеть |
| Сложность атаки | Низкая |
| Требуемые привилегии | Нет |
| Взаимодействие с пользователем | Нет |
| Конфиденциальность | Высокая |
| Целостность | Высокая |
| Доступность | Высокая |
Несколько характеристик сделали CVE-2012-1823 особенно значимой:
Сочетание простоты эксплуатации и серьезного воздействия привело к масштабным реальным атакам и включению в каталог известных эксплуатируемых уязвимостей (KEV) CISA. :contentReference[oaicite:4]{index=4}
Администраторы должны проверить:
Индикаторы включают:
Сканеры безопасности, такие как Nuclei, Nessus, OpenVAS и модули Metasploit, могут обнаруживать уязвимые конфигурации. :contentReference[oaicite:5]{index=5}
Рекомендуемые меры смягчения включают:
| Дата | Событие |
|---|---|
| Май 2012 | Уязвимость публично раскрыта |
| Май 2012 | Выпущены патчи безопасности |
| 2012 | Выпущены публичные эксплойты |
| 2012 | Опубликован модуль Metasploit |
| Последующие годы | Наблюдалась массовая эксплуатация в интернете |
| Настоящее время | Продолжает появляться в сканированиях уязвимостей и устаревших системах |
Этот репозиторий предназначен исключительно для образовательных целей, исследований безопасности, анализа уязвимостей и защитного тестирования. Любая информация, содержащаяся здесь, должна использоваться только на системах, на которые у вас есть явное разрешение. Несанкционированная эксплуатация уязвимых систем незаконна и неэтична.