
CVE-2026-48908 — PoC exploit for unauthenticated RCE in SP Page Builder (Joomla) via arbitrary file upload. Multi‑threaded, case‑bypass, shell verification. For authorized security testing only.
Критический (CVSS v4: 10.0) — Эксплойт для проверки концепции неаутентифицированного удаленного выполнения кода в SP Page Builder (
com_sppagebuilder) для Joomla.
| Атрибут | Значение |
|---|---|
| CVE ID | CVE-2026-48908 |
| Серьезность | Критический |
| Оценка CVSS v4 | 10.0 |
| Слабость | CWE-284 (Некорректный контроль доступа) → Неаутентифицированная загрузка файлов |
| Компонент | SP Page Builder (com_sppagebuilder) для Joomla |
| Затронутые версии | 1.0.0 – 6.6.1 |
| Исправленная версия | 6.6.2 |
| Требуемые привилегии | Нет (предварительная аутентификация) |
| Взаимодействие пользователя | Нет |
| Вектор атаки | Сеть |
| Воздействие | Полная компрометация системы (RCE) |
SP Page Builder предоставляет задачу контроллера asset.uploadCustomIcon для обработки загрузки пакета пользовательских иконок-шрифтов:
index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon
В уязвимых версиях эта задача доступна без аутентификации и без действительного CSRF-токена. Она принимает ZIP-архив (multipart поле custom_icon) и извлекает его содержимое в общедоступную директорию корня веб-сервера:
/media/com_sppagebuilder/assets/iconfont/<name>/
Поскольку конечная точка доступна до аутентификации, а извлеченные файлы попадают в просматриваемое место, злоумышленник может загружать произвольные файлы и выполнять PHP-код, запрашивая их по HTTP.
Этот эксплойт обходит распространенные серверные фильтры имен файлов, используя:
.php, .phtml, .phar и т. д., но не нормализует регистр, поэтому .PHP и другие варианты смешанного регистра принимаются.selection.json, style.css и fonts/<name>.ttf, чтобы загрузка была принята.fonts/shxt.{ext} внутри извлеченного архива..php и .PHPresult.txtrequestsgit clone https://github.com/Jenderal92/CVE-2026-48908
cd CVE-2026-48908
pip install requests
python2 CVE-2026-48908.py list.txt
python2 CVE-2026-48908.py list.txt 20
Файл list.txt должен содержать по одному целевому URL на строку:
https://example.com
http://target-site.com/joomla
https://192.168.1.100/joomla
· URL успешных шеллов добавляются в result.txt
· Каждая строка содержит полный URL загруженного PHP-шелла
index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon, если он еще не присутствует.fonts/shxt.{ext}.result.txt.Встроенный шелл предоставляет:
· Информацию о серверном окружении (php_uname())
· Интерфейс загрузки файлов для загрузки дополнительных файлов
· Обратную связь об успехе/неудаче
· Обновите SP Page Builder до версии 6.6.2 или новее.
· Проверьте каталоги загрузки на наличие несанкционированных файлов:
· /media/com_sppagebuilder/assets/iconfont/
· Удалите любые неожиданные PHP-файлы, найденные в этих каталогах.
· Просмотрите журналы сервера на предмет подозрительных POST-запросов к asset.uploadCustomIcon.
· Разверните межсетевой экран веб-приложений (WAF) для блокировки таких запросов.
Этот инструмент предназначен только для образовательных целей и авторизованного тестирования безопасности.
Неавторизованный доступ к компьютерным системам незаконен. Авторы не несут ответственности за любое неправильное использование или ущерб, причиненный этим инструментом. Используйте его только на системах, которыми вы владеете или на тестирование которых имеете явное письменное разрешение.
Дополнительный отказ от ответственности Вы можете увидеть отказ от ответственности на обложке Jenderal92. Проверьте его ЗДЕСЬ !!!
· Рекомендация Censys · Запись NVD · Объявление безопасности JoomShaper
Этот проект предназначен только для образовательных и исследовательских целей. Используйте на свой страх и риск.