Dahua Hero C1スマートカメラで特定された脆弱性

Bitdefenderの研究者は、Dahua Hero C1(DH-H4C)スマートカメラシリーズのファームウェアにおける重大なセキュリティ脆弱性を特定しました。デバイスのONVIFプロトコルおよびファイルアップロードハンドラに影響するこれらの欠陥により、未認証の攻撃者がリモートから任意のコマンドを実行でき、事実上デバイスを乗っ取ることが可能になります。

これらの脆弱性は、適切な対策と情報開示のためにDahuaへ報告され、公開時点では修正済みです。

影響を受けるデバイス

問題は、ファームウェアバージョンV2.810.9992002.0.R(ビルド日: 2024-01-23)ONVIFバージョン 21.06Web UIバージョン V3.2.1.1452137で動作するDahua Hero C1(DH-H4C)にて検証されました。このバージョンは、デバイス自身のアップデートインターフェースを通じて調査を開始した時点で入手可能な最新であることが確認されています。 

ベンダー自身の監査で特定された他のデバイスモデルには、IPC-1XXXシリーズ、IPC-2XXXシリーズ、IPC-WXシリーズ、IPC-ECXXシリーズ、SD3Aシリーズ、SD2Aシリーズ、SD3Dシリーズ、SDT2Aシリーズ、SD2Cシリーズ(ファームウェアバージョンが2025/04/16より古いもの)が含まれます。

謝辞

 報告した脆弱性に対し、専門的に対応してくださったDahuaセキュリティチームに心より感謝申し上げます。迅速なトリアージ、優先順位付け、問題解決は、顧客の安全と製品の完全性に対する強いコミットメントを示しています。研究者とベンダーのこの種の協力は、より広範なサイバーセキュリティ・エコシステムにとって極めて価値があり、脆弱性が武器化される前に対処されることを確実にします。業界全体で、このレベルの迅速性と透明性が再現されることを期待します。

開示タイムライン

  • 2025年3月28日: Bitdefenderが安全な通信チャネルを通じてDahuaチームに調査結果を共有
  • 2025年3月29日: Dahuaが受領を確認し、社内調査を開始 
  • 2025年4月01日: Dahuaが報告の有効性を確認 
  • 2025年4月23日: Dahuaが期限延長を要請し、Bitdefenderは開示時期を7月23日rdへ変更
  • 2025年7月07日: Dahuaが脆弱性のパッチをリリースし、7月30日thの協調開示を確認
  • 2025年7月30日: 協調的な責任ある情報開示の取り組みの一環として本レポートが公開

脆弱性1: ONVIFプロトコルハンドラにおけるスタックベースのバッファオーバーフロー(CVE-2025-31700

ポート80上のONVIFリクエストハンドラ(0x19e530の関数)はHostヘッダを誤って解析し、ヘッダをスタック上へ無制限にコピーしてしまいます。ヘッダに「]」文字が含まれ、かつその直後に「:」文字が続かない場合、strncpy関数はバッファのアドレスから「]」文字のアドレスを減算してサイズを取得します。これにより、ペイロードに「]」文字またはヌルバイトが含まれない限り、攻撃者は任意のバイト数をスタックへ書き込めます。この見落としにより、未認証のスタックベースのバッファオーバーフローが可能となり、最終的にリターンアドレスおよび複数のCPUレジスタ(r4–r11)が上書きされます。

0x0019e898におけるstrncpy呼び出し:

A screenshot of a computer code
AI-generated content may be incorrect.

事前の認証なしに悪用が可能で、攻撃が成功すると完全なコード実行に至ります。研究者が作成した概念実証(PoC)では、攻撃者がシステムコマンドをメモリに書き込み、慎重に作り込んだリターン指向プログラミング(ROP)チェーンを通じてそれらを呼び出す様子が示されています。PoCは tftp を用いてELFペイロードを投下し、 LD_PRELOAD を使用してポート4444上にバインドシェルを生成し、バイナリ署名チェックを回避します。

A close up of a computer screen
AI-generated content may be incorrect.

脆弱性2: RPCアップロードハンドラ経由の.bssセグメントオーバーフロー(CVE-2025-31701

2つ目の脆弱性は、未文書化エンドポイント POST /RPC2_UploadFileWithName/* のハンドラに存在します。ここでは、カメラが Cseq HTTPヘッダを、欠陥のある strncpy 実装を用いて .bss メモリセクション内にあるバッファへ直接コピーします。

0x00583948におけるstrncpy 呼び出し:

A screenshot of a computer program
AI-generated content may be incorrect.

0x03955c38の変数には、strncpyによって上書き可能な構造体へのポインタが格納されています。0x00586dd4および0x00586d18の関数は、期限切れセッションの有無をこの構造体に対して継続的にチェックします。境界チェックが行われないため、攻撃者は隣接するグローバル変数を上書きでき、セッション管理関数へのポインタを格納する構造体も含まれます。これらはタイムアウト管理のためにファームウェアから定期的に呼び出されます。攻撃者が細工した構造体をメモリ上に配置することで、実行フローをsystem()呼び出しへリダイレクトでき、再び完全なリモートコード実行に至ります—認証は不要です。

制御された構造体からの関数ポインタを使用する関数0x00586dd4:

A computer code with many colored text
AI-generated content may be incorrect.

このエクスプロイトも、長いヘッダ値を用いて対象構造体をオーバーフローさせ、実行をリダイレクトするPoCで同様に実証されています。

A screenshot of a computer code
AI-generated content may be incorrect.

セキュリティ上の影響

両方の脆弱性は未認証であり、ローカルネットワーク経由で悪用可能です。ポートフォワーディングやUPnPによってインターネットへ露出しているデバイスは特にリスクが高くなります。悪用に成功すると、ユーザーの操作なしにカメラへroot権限レベルでアクセスできます。

エクスプロイト経路がファームウェアの整合性チェックを回避するため、攻撃者は未署名のペイロードを読み込んだり、カスタムデーモンによって永続化したりでき、クリーンアップが困難になります。

 推奨事項

  • ユーザーは、脆弱なモデルのDahuaカメラのWebインターフェースをインターネットに公開しないでください。 UPnPを無効化し、設定されている場合はポートフォワーディングのルールを削除してください。
  • カメラを別のVLAN または専用のIoTネットワークに分離し、ラテラルムーブメントを制限してください。
  • ベンダーの更新情報を監視 し、利用可能になり次第パッチを適用してください。執筆時点では、2025/04/16以降のファームウェアバージョンで問題が修正されています。

翻訳元: https://www.bitdefender.com/en-us/blog/labs/vulnerabilities-identified-in-dahua-hero-c1-smart-cameras

ソース: bitdefender.com