
Эксплойт типа proof-of-concept для CVE-2026-48030, критическая уязвимость внедрения команд ОС в Pheditor 2.0.1-2.0.3. Включает анализ уязвимого кода, PoC-скрипт и рекомендации по исправлению для исследователей безопасности.
| Поле | Сведения |
|---|---|
| CVE ID | CVE-2026-48030 |
| Продукт | pheditor |
| Разработчик | Hamid Samak |
| Затронутые версии | 2.0.1, 2.0.2, 2.0.3 |
| Исправленная версия | 2.0.4 |
| Критичность | Критическая |
| Оценка CVSS | 9.9 |
| Вектор CVSS | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-78 (Внедрение команд ОС) |
| Обнаружено | Muslimbek Burxonov |
Критическая уязвимость внедрения команд ОС существует в обработчике терминального действия в pheditor.php. Параметр dir POST напрямую конкатенируется в shell_exec() без санитизации, что позволяет аутентифицированному злоумышленнику обойти белый список TERMINAL_COMMANDS и выполнить произвольные команды ОС.
pheditor.php, строка 586:
$command = $_POST['command']; // ✓ метасимволы проверены
$dir = $_POST['dir']; // ✗ НЕ проверено — уязвимо
// Проверка применяется ТОЛЬКО к $command, НЕ к $dir
if (strpos($command, '&') !== false ||
strpos($command, ';') !== false ||
strpos($command, '||') !== false) {
die(...);
}
// $dir передаётся несанитизированным в shell_exec
$output = shell_exec(
(empty($dir) ? null : 'cd ' . $dir . ' && ')
. $command . ' && echo \ ; pwd'
);
python3 poc.py --target http://ЦЕЛЬ/pheditor.php --password admin
См. poc.py для полного скрипта PoC.
pheditor.php, строка 586 — заменить:
// ДО (уязвимый)
'cd ' . $dir
// ПОСЛЕ (исправленный)
'cd ' . escapeshellarg($dir)
Этот PoC предоставлен только для образовательных и исследовательских целей. Используйте только на системах, на тестирование которых у вас есть явное разрешение.