概要
セキュリティ企業Akamaiのセキュリティインテリジェンスおよびレスポンスチーム(SIRT)は、Vivotek製IoTカメラのレガシーファームウェアに深刻なコマンドインジェクション脆弱性を発見しました。この脆弱性はCVE-2026-22755として追跡されており、リモートの攻撃者が認証なしでroot権限で任意のコードを実行できる可能性があります。これは、侵害されたIoTデバイスによるDDoS攻撃などのボットネットリスクを増大させます。
脆弱性の詳細
この問題は、upload_map.cgiスクリプトにおけるユーザー入力の不適切な処理に起因します。逆アセンブルされたコードから、snprintf()関数が攻撃者によって制御されるファイル名を含む「mv %s %s」のような文字列を構築し、その結果がsystem()関数に渡されることが判明しました。例えば、「test_firmware.bin;id;」のような巧妙に作成されたファイル名を使用することで、シェルコマンドが実行されてしまいます。
悪用条件と実証
この脆弱性を悪用するためには、以下の5つの条件を満たす必要があります。
- ファイルサイズが5MB未満であること
- ファームウェアチェックを通過すること(マジックバイト:先頭に
FF V FF FF、末尾にFF K FF FF) /usr/sbin/confclientが存在し、「capability_remotecamctrl_master=1」を返すこと- 非標準の環境変数を持つカスタマイズされたBoaウェブサーバー
upload_map.cgiを介した呼び出しであること(file_manager.cgiではない)
研究者らは、ARM環境をエミュレートし、ダミーファームウェアを作成して脆弱性を実証しました。REQUEST_METHOD=POST, CONTENT_LENGTH=55123, QUERY_STRING=camid=1, POST_FILE_NAME="test_firmware.bin;id;"といった環境変数を設定して/usr/share/www/cgi-bin/upload_map.cgiを実行すると、「uid=0(root) gid=0(root)」といったrootユーザーの詳細が出力され、コマンドが実行されたことが確認されました。
影響を受けるモデルと推奨される対策
多数のVivotek製モデルがこの脆弱なファームウェアを実行しています。影響を受けるモデルとファームウェアバージョンは多岐にわたりますので、直ちにファームウェアを更新することが強く推奨されます。
主なIOCs(Indicators of Compromise)
- パス:
/cgi-bin/admin/upload_map.cgi - パラメータ:
camid= - 環境変数:
POST_FILE_NAMEに;が含まれるもの(例:test_firmware.bin;id;) - マジックバイト: ヘッダー
\xFF\x56\xFF\xFF; フッター\xFF\x4B\xFF\xFF - YARAルール:
rule CVE_2026_22755_Vivotek_upload { strings: $path = "/cgi-bin/admin/upload_map.cgi"; $param = "camid="; condition: all of them }
セキュリティ対策の推奨事項
ベンダーは、ファイル名のサーバーサイドでのサニタイズ、アップロードの制限、およびこのYARAルールを用いたIOCsの監視を行うべきです。ユーザーはネットワークをセグメント化し、未使用のCGIエンドポイントを無効にしてください。セキュリティチームは、異常なアップロードを監視する必要があります。
この脆弱性は、レガシーデバイスがボットネットの燃料となるIoTのリスクを浮き彫りにしています。プロアクティブなIoTセキュリティには、入力検証、定期的な監査、そしてAIツールを活用した早期の脆弱性発見が不可欠です。
元記事: https://gbhackers.com/vivotek-flaw-allows-code-injection/
