Pheditor — однофайловый редактор и файловый менеджер, написанный на PHP. Начиная с версии 2.0.1 и до версии 2.0.6, функция терминала в Pheditor использует неполный черный список символов для очистки введенных пользователем команд перед их передачей в Shell_exec(). После исправления GHSA-9643-6xjp-vx57 (которое добавило $ в черный список) символы | (одиночный канал), ` (обратный апостроф) и байт новой строки (0x0A) остаются разблокированными.
Аутентифицированный пользователь с разрешением терминала (включенным по умолчанию) может использовать любой из них для обхода списка разрешений TERMINAL_COMMANDS и выполнения произвольных команд ОС от имени пользователя веб-сервера. Эта проблема исправлена в версии 2.0.6.
Показать оригинальное описание (EN)
Pheditor is a single-file editor and file manager written in PHP. From version 2.0.1 to before version 2.0.6, the terminal feature in Pheditor uses an incomplete character blocklist to sanitize user-supplied commands before passing them to shell_exec(). After the fix for GHSA-9643-6xjp-vx57 (which added $ to the blocklist), the characters | (single pipe), ` (backtick), and the newline byte (0x0A) remain unblocked. An authenticated user with the terminal permission (enabled by default) can leverage any of these to bypass the TERMINAL_COMMANDS allowlist and execute arbitrary OS commands as the web server user. This issue has been patched in version 2.0.6.
Характеристики атаки
Последствия
Строка CVSS v3.1