FFmpeg の 0 日 exploit で二十一件

2026/06/13 7:13

FFmpeg の 0 日 exploit で二十一件

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Depthfirst の自律型セキュリティエージェントは、大規模な FFmpeg ライブラリで 21 つのゼロデイ脆弱性を発見し、Google や Anthropic が以前同一コードベース内で問題を見出したことを続く深層分析のパターンを続けて、著しい進展を達成しました。特に、この発見は従来の高コスト AI モデル(Anthropic の Mythos モデルを使用し約 1 万ドルの支出)に関連する費用の何分の一という低コストで成し遂げられました(約 1,000 ドル)。エージェントは高度な脅威モデル化とデータフロー監査を活用し、発見されたすべての件について再現可能な概念実証を確保しました。これらの問題のうち 8 件の CVE 識別子が付与され、残り 13 件は内部で追跡されています。これらに含まれるのは、AV1 RTP デパケタイザーの不具合(DFVULN-127/CVE の可能性あり)で、認証を必要とせずに標準的な RTSP ストリームを通じて悪意のあるコマンドを注入しリモートコード実行を可能にするという重大なリスクです。この脆弱性は外部 URL に FFmpeg を曝しているあらゆるシステムに影響を与え、メディア受信パイプラインや監視ネットワークを含むためです。したがって、そのようなシステムに依存する組織は、これらの欠陥が通常のスートストリームコマンドを通じて悪用され、機密データやインフラを世界的に損なう可能性があるため、即座にパッチ適用を最優先事項とすべきです。

本文

Depthfirst の自動セキュリティエージェントによる FFmpeg ゼロデイ脆弱性の発見報告

Google と Anthropic が実施した集中的なセキュリティ分析において、depthfirst社の自律型セキュリティエージェントが FFmpeg における 21 件のゼロデイ脆弱性を特定しました。

調査の背景と意義

  • コスト効率:
    • Anthropic の Mythos モデルを使用した場合の費用は約 $10,000 ですが、今回の PoC(概念証明)入力生成にはその10% に相当する約 $1,000という極めて低いコストで実証されました。
    • 単なる理論的解析ではなく、**実用的な Proof of Concept(PoC)**を作成しました。
  • 脆弱性の性質:
    • 特定された中には、長年沈静化していた潜伏型バグが含まれていました。
    • これらのバグを悪用し、**リモートコード実行(RCE)**を実現するための Exploit を含む PoC を開発しました。
  • FFmpeg の重要性:
    • 世界で最も普及率の高いソフトウェアの一つであり、ブラウザから大規模なストリーミングプラットフォームまで広く使用されています。
    • 信頼できないメディアデータを常時解析するため、本質的にセキュリティクリティカルです。
    • ゼロクリック攻撃の主要な標的となっています。

Depthfirst のセキュリティエージェント

コーディングエージェントと異なり、セキュリティエージェントは既存システム内の悪用可能な問題を発見することに特化しています。

  • アプローチの違い:
    • コーディングエージェント: 人間からの指示に基づきコード生成を行い、エッジケースや対抗入力への考慮が少ない傾向があります。
    • セキュリティエージェント: 暗黙的なアーキテクチャ理解、公開パーサーの特定、攻撃対象マッピングを行います。データフローを追跡して直接的に監査します。
  • 検証プロセス:
    • 前提条件の捏造を防ぐ堅牢なガードレールを備えています。
    • 「攻撃者が本当に制御可能な入力を提供しているか」を厳しくチェックします。
    • 単なる理論的なレポートではなく、実行経路を追跡し、再帰可能な具体的な入力を作成して脆弱性を自動確認します。

発見事項:ゼロデイ脆弱性のリスト

エージェントは TS デマルチミュークサーから VP9 デコーダーまでを網羅する 21 件のゼロデイ脆弱性を発見しました。 合計費用は約 $1,000(Mythos モデル利用時)です。そのうち 8 件について CVE が割り当てられています。

CVE 割付済み (8 件)

  • CVE-2026-39210: Heap Buffer Overflow
    • 対象: TS デマルチミュークサー
    • 詳細: 2010 年の導入時に、長さの境界チェックが欠落しており、2 バイト読み取り前に問題が発生。
  • CVE-2026-39211: Integer Overflow
    • 対象: swscale リファクタリング
    • 詳細: 2010 年の導入時で、サイズファクター式に上限がなく、ユーザー制御パラメータによる任意のスケーリングが可能。
  • CVE-2026-39212: Stack Overflow
    • 対象: ffmpeg_opt.c
    • 詳細: 2025 年 7 月の回帰(regression)。プリセットファイルが再帰的にオプションを解析できるのに深度制限が存在しない。
  • CVE-2026-39213: Heap Buffer Overflow
    • 対象: yuv4mpegenc の rawvideo 入力経路
    • 詳細: 2023 年の導入時で、パケットサイズに対して次元検証を行わなかった。
  • CVE-2026-39214: Stack Buffer Overflow
    • 対象: オリジナル SDT(Service Description Table)実装
    • 詳細: 2003 年の導入時で、サービスエントリを記録せずに書き込みを行った。23 年間にわたり潜伏
  • CVE-2026-39215: Heap Buffer Overflow
    • 対象: update_mb_info()
    • 詳細: 2012 年の導入時で、ロジックエラーにより呼び出し後に割り当てられたバッファに 12 バイトの先書きが行われた。
  • CVE-2026-39216: Heap Buffer Overflow
    • 対象: img2enc.c
    • 詳細: 2012 年の導入時で、安全な色空間サイズが無制限に次元導出サイズで置き換わった。
  • CVE-2026-39217: Heap Buffer Overflow
    • 対象: VP9 デコーダー
    • 詳細: 2025 年 3 月の回帰。再定義されたサイズ更新関数がタイルスレッドバッファの割り当てを逃した。

CVE 未割付(内部追跡 ID) (13 件)

  • DFVULN-127: Heap Buffer Overflow
    • 対象: RTP AV1 デパケットアイザー (
      rtpdec_av1.c
      )
    • 詳細:
      Temporal Delimiter OBU
      をスキップする際にバッファ境界超過書き込みが発生。2024 年の導入以降存在。
  • DFVULN-126: Heap Buffer Overflow
    • 対象: swscale グラフコード (
      graph.c
      )
    • 詳細: 交差結合 YUV420P→NV12 変換の不適切な処理により、宛先オーバーフロー(576 バイト超過)。2024 年の導入。
  • DFVULN-125: Stack Buffer Overflow
    • 対象: RTP JPEG デパケットアイザー (
      rtpdec_jpeg.c
      )
    • 詳細: 量子化テーブル構築時、適切にスペースを割り当てずバッファ境界超過。2012 年の回帰。
  • DFVULN-124: Heap Buffer Overflow
    • 対象: AVIF オーバーレイ経路 (
      ffmpeg_demux.c
      )
    • 詳細: ゼロタイルエントリを持つ引用を拒否できず、境界超過読み込みが発生。2025 年の導入。
  • DFVULN-123: Integer Overflow
    • 対象: RTP LATM デパケットアイザー (
      rtpdec_latm.c
      )
    • 詳細: 符号付き足し算のオーバーフローで境界チェックバイパス、約 1 GB の読み込みが可能。2010 年の導入。
  • DFVULN-122: Heap Buffer Overflow
    • 対象: RTP MPEG-4 デパケットアイザー (
      rtpdec_mpeg4.c
      )
    • 詳細: AU ヘッダー長を 0 と受け入れ、バッファ境界超過。2005 年の導入で 20 年間潜伏。最も古く深刻な欠陥の一つ。
  • DFVULN-121: Heap Buffer Underflow
    • 対象: CAF デマルチミュークサー (
      cafdec.c
      )
    • 詳細:
      read_seek()
      で配列インデックスチェックを欠落し、負インデックスアクセス。2009 年の導入。
  • DFVULN-120: Integer Underflow
    • 対象: AVI デマルチミュークサー (
      avidec.c
      )
    • 詳細: サイズ検証不足により、サイズ 0 の LIST チャンクで約 4 GB のアンダーフロー(DoS)。2011 年の導入。
  • DFVULN-119: Heap Buffer Overflow
    • 対象: オプションパーサー (
      ffmpeg_opt.c
      )
    • 詳細: ファイルインデックスとストリームインデックスの誤解釈、負インデックスでのメモリ読み取り。2025 年の回帰。
  • DFVULN-118: Heap Buffer Overflow
    • 対象: RTSP サーバー経路 (
      rtspdec.c
      )
    • 詳細: 負の Content-Length を有効扱い、境界超過書き込み。2021 年の回帰。
  • DFVULN-117: Heap Buffer Overflow
    • 対象: RTMP クライアント (
      rtmpproto.c
      )
    • 詳細: チェック条件の誤り(in_size < 3 を < 8 に)により、割り当て不足のバッファからの読み取り。2012 年の導入。
  • DFVULN-116: Heap Buffer Overflow
    • 対象: RTSP SDP パース (
      rtsp.c
      )
    • 詳細: 空文字列での計算誤りにより、事前バッファ読み込みが発生。2010 年の導入。

主要な RCE: AV1 RTP デパケットアイザーの脆弱性

21 件の発見事項の中で特に際立つのは、FFmpeg の AV1 RTP デパケットアイザー (

libavformat/rtpdec_av1.c
)における Heap Buffer Overflowです。

  • 到達可能性: ネットワーク上で直接到達可能で、特別なフラグは不要です。
  • 利用方法: 誰もが利用する
    ffmpeg -i rtsp://attacker/stream
    コマンドだけで実行可能です。
  • **トリガー:**わずか 183 バイトの RTP パケットで、コード実行をリダイレクトできます。

根本原因: Temporal Delimiter (TD) の処理ミス

AV1 ビデオは RTP プロトコルで配信され、FFmpeg がデパケット化して要素流に戻します。 仕様上、Temporal Delimiter (TD) という特殊なマーカーは「無視して削除」するよう指示されていますが、その処理が脆弱性の原因となります。

  • コードの挙動: TD をスキップすると、出力ポインタ
    pktpos
    は宣言された
    obu_size
    分だけ進みますが、メモリの割り当ては行われません。
    // libavformat/rtpdec_av1.c:250-254
    if ((obu_type == AV1_OBU_TEMPORAL_DELIMITER) ||
        (obu_type == AV1_OBU_TILE_LIST)) {
        pktpos += obu_size;        // ポインタを進めるが...
        rem_pkt_size -= obu_size;  // カウンタを減らす
        obu_cnt++;
        continue;                  // ← メモリ割り当てをスキップ!
    }
    
  • 問題点:
    • 書き込みポインタの毒化: TD (
      obu_size = 148
      ) をスキップした後、
      pktpos
      は 148 ですが、対応するメモリは未割り当てです。
    • 攻撃者の制御: 次のループでは、この先読みされた位置に通常 sized OBU の処理が行われますが、そこには**攻撃者が提供したデータ(偽装された TD ヘッダー)**が書かれようとしています。

Exploit: コード実行への昇格

単なるバッファオーバーフローだけではコード実行は困難ですが、FFmpeg の

av_buffer_alloc
メカニズムを利用することで可能になります。

  1. ターゲットの位置:
    av_grow_packet
    はデータを割り当てますが、その直後に
    AVBuffer
    構造体が配置されます。この構造体内には、バッファを解放するコールバックポインタ
    free
    が存在します。
    • オフセット +24 に位置し、これがコード実行のターゲットとなります。
  2. 攻撃手法:
    • 攻撃者は TD のペイロード内で、第 3 の「偽装された OBU」を埋め込みます。
    • これにより、もう一つの
      av_grow_packet
      が呼び出され、FFmpeg は新しいバッファを割り当てて古いバッファを解放します(
      realloc
      とは異なる挙動)。
    • 新しいバッファを確保する際、腐敗した
      free
      ポインタ
      がコールバックとして呼び出されます。
  3. コードフロー:
    // libavutil/buffer.c:209-214
    if (!(buf->buffer->flags_internal & BUFFER_FLAG_REALLOCATABLE) || ...) {
        ret = av_buffer_realloc(&new, size);
        memcpy(new->data, buf->data, ...);
        buffer_replace(pbuf, &new); // ← 古いバッファ解放処理の開始
    }
    
    // libavutil/buffer.c:129-130
    if (atomic_fetch_sub_explicit(&b->refcount, 1, ...) == 1) {
        b->free(b->opaque, b->data); // ← ここがコールされ、0xdeadbeef が実行される
    }
    

影響範囲

この脆弱性は認証なしで、通常の RTSP PLAY プロセス中にトリガーされます。以下の全てのデプロイメントにリスクがあります。

  • メディアイントレストパイプライン(ユーザーが供給するストリーム URL を処理するもの)
  • 監視および CCTV システム(RTSP フィードを引くもの)
  • リモート AV1-over-RTP ソースを処理するトランスコーディングサービス

以下は、脆弱性を悪用するための概念実証コードの概要です:

# 攻撃者のコマンドライン
ffmpeg -i rtsp://attacker/stream [出力ファイル]

この PoC コードにより、183 バイトのパケットが RCE を達成することが確認できます。

同じ日のほかのニュース

一覧に戻る →

2026/06/13 14:57

Mozilla を辞める

## 日本語翻訳: サマリー:著者は、組織の現在のリーダーシップと社原本来のコミュニティ主導のミッションとの間にある増大する断絶による心身の消耗を理由に、モジラから退任することを表明しています。著者は、最近の「スタートアップ的な」思考への転換——透明性よりも生々しいユーザー成長数の優先——が、firefox が信頼できるブラウザとしての核心的強みを損ないつつあると主張しています。重要な批判点は、リーダーらが現在は無償の貢献者を単なる顧客として扱っており、歴史的に製品を形成してまいれた深いコミュニティ関与の価値を無視していることです。さらに、人工知能や制限的なエンタープライズ標準といったトレンド対応型機能への追求が、技術的負債を生み出し、根本的な信頼性の問題を解決する注意力から逸らしています。グーグルの資金提供がこれらの欠陥のあるプロジェクトを継続可能にしているものの、この戦略は、単に動作しプライバシー重視のブラウザを求めるユーザーを遠ざけるリスクがあります。モジラがレガシーなボランティア精神と企業のスケーラビリティの間にある文化的対立に対処しない場合、業界ではユーザーが本物の代替手段を探して churn が増加するようになり、大規模テック巨頭への支配強化につながる可能性があります。

2026/06/13 7:08

レアエース不使用電動モーター

## Japanese Translation: ルノーグループは、希土類磁石に依存しない高効率モーターを量産することで電気移動の先駆けとして自らの位置を確立しており、市場において EV の 90%が永久磁石同期モーターを使用するという状況と対照的な成果を挙げています。磁石ではなく巻線ローターを利用する EESM テクノロジー(Evolutionary Electric System Motor)は、世界の希土類供給の大半を掌握する中国への依存を回避します。ルノーはこの革新を 2012 年に Zoe などでの商品化を開始し、以降明確な世代ごとに技術を進化させてきました。第一世代(文献 5A/5AL)は Kangoo Z.E や Twingo Electric でデビューし、第二世代(文献 6A/6AM)は最高 160 kW の出力を特徴としており、現在のフラッグシップモデルである Megane E-Tech、Scenic E-Tech、そして今後の Renault 4 で採用されています。新しい第三世代モーター(文献 E7A)が現在準備就绪しており、2027 年発売に向けて仕様が確定しています。この高度化されたバージョンは重大なアップグレードを指向しており、オールインワンアーキテクチャにより寸法を 30%削減しながら 200 kW の電力と 400 Nm のトルクを提供します。極めて重要な点として、800 ボルトシステムで動作することで急速充電を可能にし、炭素への影響を 30%削減し、性能を損なうことなく最大 92%の効率を実現します。

2026/06/13 9:51

米国政府が「Fable 5」と「Mythos 5」へのアクセス停止に関する声明

## Japanese Translation: 米国政府は、国家安全保障上の懸念を理由に、Anthropic に高度な Fable 5 および Mythos 5 AI モデルへのアクセスを外国籍の人物に対して即時に停止することを命じた。同社はこれらの特定のモデルと制限付きツールの利用を無効化する一方で、他のすべてのモデルの稼働は引き続き維持することが必要となった。当局は、Fable 5 の安全性の safeguards を回避しうる「jailbreaking」手法が存在すると見ているが、Anthropic はこの評価に異議を唱え、想定されている脆弱性は OpenAI の GPT-5.5 を含め他の業界モデルにもすでに存在しており、その展開に対して独自に脅威をもたらすものではないと主張している。限られた調査に基づいた誤解に基づくものであるにもかかわらず、Anthropic は技術的な見解の相違があるものの、法的指図に従い展開を停止しなければならない結果、アクセス制限の影響を受ける顧客に対し即座にサービス中断が引き起こされた。同社は謝罪し、24 時間以内により詳細な情報を共有すると約束した。この事件は、急速に変化する技術的風景における AI セーフティの現実的な課題と厳格な規制措置の間で高まる緊張関係を示している。