
CVE-2026-48908 — Exploit PoC pour RCE non authentifié dans SP Page Builder (Joomla) via téléchargement de fichier arbitraire. Multi-thread, contournement de casse, vérification de shell. Pour tests de sécurité autorisés uniquement.
| Attribut | Valeur |
|---|
| CVE ID | CVE-2026-48908 |
| Sévérité | Critique |
| Score CVSS v4 | 10.0 |
| Faiblesse | CWE-284 (Contrôle d'accès inapproprié) → Téléchargement de fichier non authentifié |
| Composant | SP Page Builder (com_sppagebuilder) pour Joomla |
| Versions affectées | 1.0.0 – 6.6.1 |
| Version corrigée | 6.6.2 |
| Privilèges requis | Aucun (pré-authentification) |
| Interaction utilisateur | Aucune |
| Vecteur d'attaque | Réseau |
| Impact | Compromission totale du système (RCE) |
SP Page Builder expose la tâche du contrôleur asset.uploadCustomIcon pour gérer le téléchargement d'un package d'icônes de police personnalisé :
index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon
Dans les versions vulnérables, cette tâche est accessible sans authentification et sans jeton CSRF valide. Elle accepte une archive ZIP (champ multipart custom_icon) et extrait son contenu dans un répertoire accessible publiquement sous la racine web :
/media/com_sppagebuilder/assets/iconfont/<name>/
Étant donné que le point de terminaison est accessible avant authentification et que les fichiers extraits atterrissent dans un emplacement navigable, un attaquant peut télécharger des fichiers arbitraires et exécuter du code PHP en les demandant via HTTP.
Cet exploit contourne les filtres de noms de fichiers côté serveur courants en utilisant :
.php, .phtml, .phar, etc., mais ne normalise pas la casse, donc .PHP et d'autres variantes mixtes sont acceptés.selection.json, style.css et fonts/<name>.ttf valides afin que le téléchargement soit accepté.fonts/shxt.{ext} à l'intérieur de l'archive extraite..php et .PHPresult.txtrequestsgit clone https://github.com/Jenderal92/CVE-2026-48908
cd CVE-2026-48908
pip install requests
Utilisation de base
python2 CVE-2026-48908.py list.txt
Avec nombre de threads personnalisé
python2 CVE-2026-48908.py list.txt 20
Format du fichier d'entrée
list.txt doit contenir une URL cible par ligne :
https://example.com
http://target-site.com/joomla
https://192.168.1.100/joomla
Sortie
· Les URL de shell réussies sont ajoutées à result.txt · Chaque ligne contient l'URL complète du shell PHP téléchargé
⚙️ Fonctionnement
index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon s'il n'est pas déjà présent.fonts/shxt.{ext}.result.txt.Charge utile du shell
Le shell intégré fournit :
· Informations sur l'environnement du serveur (php_uname())
· Interface de téléchargement de fichiers pour télécharger des fichiers supplémentaires
· Retour de succès/échec
🛡️ Atténuation
· Mettez à jour SP Page Builder vers la version 6.6.2 ou ultérieure.
· Auditez les répertoires de téléchargement pour les fichiers non autorisés :
· /media/com_sppagebuilder/assets/iconfont/
· Supprimez tout fichier PHP inattendu trouvé dans ces répertoires.
· Examinez les journaux du serveur pour les requêtes POST suspectes vers asset.uploadCustomIcon.
· Déployez un pare-feu d'application Web (WAF) pour bloquer ces requêtes.
⚠️ Avertissement
Cet outil est destiné uniquement à des fins de test de sécurité éducatif et autorisé.
L'accès non autorisé aux systèmes informatiques est illégal. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive ou de dommages causés par cet outil. Utilisez-le uniquement sur des systèmes dont vous êtes propriétaire ou pour lesquels vous avez une autorisation écrite explicite de tester.
Pour plus d'avertissements, consultez l'avertissement sur la couverture de Jenderal92. Vous pouvez le vérifier ICI !!!
📚 Références
📄 Licence
Ce projet est uniquement à des fins éducatives et de recherche. Utilisez-le à vos propres risques.