Asayomu Tech
注目★★★★★Hacker News

FFmpeg VPK Demuxerにゼロ除算、21バイトでクラッシュ

30秒で把握

  • 1FFmpegのVPK Demuxerでチャンネル数0のゼロ除算が発生
  • 2細工した21バイト入力でSIGFPE、影響はFFmpeg利用アプリのDoS
  • 3vpk_read_packetにゼロ判定を追加しINVALIDDATA返却を提案

要約

FFmpegのVPK Demuxerに、チャンネル数0の入力で整数ゼロ除算が起きるバグが見つかった。細工した21バイトのVPK入力を開くと、vpk_read_packetがSIGFPEでFFmpegベースのアプリケーションをクラッシュさせる。原因は、par->ch_layout.nb_channelsが0か確認せず、last_block_sizeとblock_alignを割り算していたことにある。悪用による任意読み書きは確認されておらず、影響はDoSに限定される。修正案はゼロチャンネル時にAVERROR_INVALIDDATAを返し、クラッシュを防ぐガードを追加することだ。

あなたへの影響

FFmpegでVPK形式を受け付ける日本の開発チームは、修正版の有無を確認し、未対応の場合は不正VPK入力の受け入れ制限とクラッシュ監視を行ってください。

推奨:VPK DemuxerはVPKコンテナを解析して音声パケットを取り出す処理です。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。