AkamaiのSecurity Intelligence and Response Team(SIRT)は、旧世代のVivotek IoTカメラのファームウェアに深刻なコマンドインジェクション脆弱性を発見しました。
CVE-2026-22755として追跡されているこの欠陥により、リモート攻撃者は認証なしでrootとして任意のコードを注入・実行できます。
研究者らはAI駆動のリバースエンジニアリングを用いてこれを発見し、数十種類の旧型カメラモデルに影響が及ぶことを確認しました。これにより、侵害された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 Webサーバーであること、そしてupload_map.cgi(file_manager.cgiではない)経由で呼び出されることです。
悪用するため、研究者らはARM環境をエミュレートしました。Bashスクリプトでダミーのファームウェアを作成しました:
#!/bin/bash
TEMP_DIR=/tmp
FIRMWARE_FILE="$TEMP_DIR/firmware.bin"
printf '\xFF\x56\xFF\xFF' > "$FIRMWARE_FILE"
dd if=/dev/zero bs=1 count=1000 >> "$FIRMWARE_FILE" 2>/dev/null
printf '\xFF\x4B\xFF\xFF' >> "$FIRMWARE_FILE"
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を実行すると、rootの詳細「uid=0(root) gid=0(root)」が出力されます。Straceにより、セミコロンをシェルが解釈し、mvが失敗した後にidが実行されることが確認されます。

影響を受けるモデルとIOC
数十種類のVivotekモデルが脆弱なファームウェアを実行しています。直ちに更新してください。
| モデル | ファームウェアバージョン |
|---|---|
| FD8365, FD8365v2, FD9165, FD9171, FD9187, FD9189, FD9365, FD9371, FD9381, FD9387, FD9389, FD9391, FE9180, FE9181, FE9191, FE9381, FE9382, FE9391, FE9582, IB9365, IB93587LPR, IB9371, IB9381, IB9387, IB9389, IB9391, IP9165, IP9171, IP9172, IP9181, IP9191, IT9389, MA9321, MA9322, MS9321, MS9390, TB9330 | 0100a, 0106a, 0106b, 0107a, 0107b_1, 0109a, 0112a, 0113a, 0113d, 0117b, 0119e, 0120b, 0121, 0121d, 0121d_48573_1, 0122e, 0124d_48573_1, 012501, 012502, 0125c |
主要なIOC:
| IOC種別 | 値 |
|---|---|
| パス | /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ルールでIOCを監視してください。テストのためのエクスプロイトのエミュレーションは、安全な環境で実施してください。
この欠陥はIoTのリスクを浮き彫りにしています。旧式デバイスがボットネットを助長します。rootアクセスにより、完全な侵害、データ窃取、またはDDoSへの組み入れが可能になります。
ユーザーはネットワークをセグメント化し、未使用のCGIエンドポイントを無効化してください。セキュリティチームは異常なアップロードをハンティングしてください。
Akamaiは、ベンダーにはパッチ適用を、ユーザーには更新を、研究者には協力を呼びかけています。プロアクティブなIoTセキュリティには、入力検証、定期的な監査、そして早期に欠陥を見つけるためのAIツールが求められます。
翻訳元: https://gbhackers.com/vivotek-flaw-allows-code-injection/