
CVE-2023-43654 のデモ - PyTorch TorchServe におけるリモートコード実行
ShellTorch は、PyTorch TorchServe(PyTorch のデフォルト推論サーバー)における3つの重大な脆弱性の連鎖です。
これは、ネットワークから任意のリモートコード実行につながるSSRF脆弱性のエンドツーエンドのPoCです。
TorchServe 0.8.1 を実行docker run -d --rm -it -p 8080:8080 -p 8081:8081 -p 8082:8082 -p 7070:7070 -p 7071:7071 --name shelltorch-demo pytorch/torchserve:0.8.1-cpu
docker logs -f shelltorch-demo
ShellTorch-Checker スクリプトを実行このツールは、指定されたデプロイメントが CVE-2023-43654 に対して脆弱かどうかを確認するために使用されます。
bash <(curl https://raw.githubusercontent.com/OligoCyberSecurity/ShellTorchChecker/main/ShellTorchChecker.sh) "127.0.0.1"
出力:
_____ _ _ ______ _ _ _______ ____ _____ _____ _ _
/ ____ | | | | ____| | | | |__ __/ __ \| __ \ / ____| | | |
| (___ | |__| | |__ | | | | | | | | | | |__) | | | |__| |
\___ \| __ | __| | | | | | | | | | | _ /| | | __ |
____) | | | | |____| |____| |____| | | |__| | | \ \| |____| | | |
|_____/|_| |_|______|______|______|_| \____/|_| \_\______|_| |_|
このスクリプトは TorchServe CVE-2023-43654 をチェックします。
この脆弱性は Oligo 研究チームによって発見され、認証なしの RCE を引き起こす可能性があります。
詳細については、以下の完全なレポートをご覧ください: https://www.oligo.security/blog/shelltorch-torchserve-ssrf-vulnerability-cve-2023-43654
免責事項:
このツールを使用することにより、お客様は本ツールが明示または黙示を問わずいかなる種類の保証もなく「現状のまま」提供されることを認識し、同意するものとします。Oligo およびすべての貢献者は、本ツールの使用、誤用、または信頼に起因する直接的、間接的、偶発的、または結果的な損害や誤った結果について、一切の責任を負いません。
お客様は、このツールの出力とその意味を理解し、その結果に基づいて行うすべての行動について単独で責任を負います。
自己責任で使用してください。
...........................................
このスクリプトを実行し続けることで、免責事項を読み、同意したものとみなします。
スキャンを開始するには何かキーを押してください。Ctrl+C で終了します。
torchserve はローカルで実行されていません。
スキャン結果:
[-] 管理インターフェース API の設定ミスをチェック中 (ポート 8081)
[X] 127.0.0.1:8081 はリモート接続に対して開放されています
[-] CVE-2023-43654 リモートサーバーサイドリクエストフォージェリ (SSRF) をチェック中
[X] CVE-2023-43654 SSRF ファイルダウンロードに対して脆弱です
推奨事項:
[-] 管理インターフェース API の設定ミスを解決するには:
config.properties の "management_address" を 0.0.0.0 から 127.0.0.1 に変更します
例:
management_address: http://127.0.0.1:8081
[-] CVE-2023-43654 SSRF ファイルダウンロードを解決するには:
config.properties の "allowed_urls" フィールドで特定の URL を設定します。
例:
allowed_urls=https://s3.amazonaws.com/.*,https://torchserve.pytorch.org/.*
docker kill shelltorch-demo && rm -rf model-store