
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.
Critical (CVSS v4: 10.0) — Proof-of-concept exploit for unauthenticated remote code execution in SP Page Builder (
com_sppagebuilder) for Joomla.
| Attribute | Value |
|---|---|
| CVE ID | CVE-2026-48908 |
| Severity | Critical |
| CVSS v4 Score | 10.0 |
| Weakness | CWE-284 (Improper Access Control) → Unauthenticated File Upload |
| Component | SP Page Builder (com_sppagebuilder) for Joomla |
| Affected Versions | 1.0.0 – 6.6.1 |
| Fixed Version | 6.6.2 |
| Privileges Required | None (pre‑authentication) |
| User Interaction | None |
| Attack Vector | Network |
| Impact | Full system compromise (RCE) |
SP Page Builder exposes the controller task asset.uploadCustomIcon to handle uploading a custom icon‑font package:
index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon
In vulnerable versions, this task is reachable without authentication and without a valid CSRF token. It accepts a ZIP archive (multipart field custom_icon) and extracts its contents into a publicly accessible directory under the web root:
/media/com_sppagebuilder/assets/iconfont/<name>/
Because the endpoint is accessible pre‑authentication and the extracted files land in a browsable location, an attacker can upload arbitrary files and execute PHP code by requesting them over HTTP.
This exploit defeats common server‑side filename filters using:
.php, .phtml, .phar, etc., but does not normalise case, so .PHP and other mixed‑case variants are accepted.selection.json, style.css, and fonts/<name>.ttf so the upload is accepted.fonts/shxt.{ext} within the extracted archive..php and .PHP variantsresult.txtrequests librarygit clone https://github.com/Jenderal92/CVE-2026-48908
cd CVE-2026-48908
pip install requests
Basic Usage
python2 CVE-2026-48908.py list.txt
With Custom Thread Count
python2 CVE-2026-48908.py list.txt 20
Input File Format
list.txt should contain one target URL per line:
https://example.com
http://target-site.com/joomla
https://192.168.1.100/joomla
Output
· Successful shell URLs are appended to result.txt · Each line contains the full URL to the uploaded PHP shell
⚙️ How It Works
Shell Payload
The embedded shell provides:
· Server environment information (php_uname()) · File upload interface for uploading additional files · Success / failure feedback
🛡️ Mitigation
· Upgrade SP Page Builder to version 6.6.2 or newer. · Audit upload directories for unauthorised files: · /media/com_sppagebuilder/assets/iconfont/ · Remove any unexpected PHP files found in those directories. · Review server logs for suspicious POST requests to asset.uploadCustomIcon. · Deploy a Web Application Firewall (WAF) to block such requests.
⚠️ Disclaimer
This tool is for educational and authorised security testing purposes only.
Unauthorised access to computer systems is illegal. The authors assume no responsibility for any misuse or damage caused by this tool. Only use this on systems you own or have explicit written permission to test.
More Disclaimer You Can see the disclaimer on the cover of Jenderal92. You can check it HERE !!!
📚 References
· Censys Advisory · NVD Entry · JoomShaper Security Announcement
📄 License
This project is for educational and research purposes only. Use at your own risk.