
Доказательство концепции и техническое описание для CVE-2026-74239, уязвимости обхода пути при импорте архивов стилей XenForo в Windows, позволяющей запись файлов через специально созданный ZIP.
XenForo до версии 2.3.13 уязвим к обходу пути (path traversal) при импорте архивов стилей в Windows.
Импортёр принимает ZIP-элементы в каталоге upload/ и отклоняет имена, содержащие форму с прямым слэшем /../. Он не нормализует и не отклоняет обратные слэши. Затем XenForo добавляет сохранённое имя элемента к своему временному каталогу извлечения. Windows интерпретирует ..\ как переход к родительскому каталогу.
Администратор ACP без прав суперпользователя, имеющий разрешение style, может выйти за пределы временного каталога и записать байты в другой путь, доступный для записи веб-серверу. В моей тестовой установке XenForo 2.3.12 (build 2031270) специально созданный элемент записал новый PHP-файл-маркер в публичный корень веб-сайта; запрос к нему выполнил константный маркер от имени учётной записи веб-сервера.
Предварительным условием является развёртывание на Windows с поддержкой PHP ZIP и делегированным администратором стилей. Доказательство использует фиксированное новое имя файла, отказывается перезаписывать существующий файл и не содержит выполнения команд. XenForo 2.3.13 содержит исправление.
python poc.py https://xenforo.example LIMITED_STYLE_ADMIN --confirm-write
Пароль запрашивается со скрытым вводом. Удалите style-archive-sentinel.php из тестового корня веб-сайта сразу после запуска.
Обнаружено Марко Пачарони (BomboBombone).