21バイトの悪意あるVPKファイルでFFmpegがSIGFPEクラッシュ——ゼロ除算バグをvibecodedファザーが発見
We found a division by zero bug in FFmpeg with a vibecoded fuzzer
vibecodedファザーがFFmpegのVPKデマルチプレクサ(libavformat/vpk.c)に整数ゼロ除算のバグを発見。細工された21バイトの入力が、任意のFFmpegベースのアプリケーションをクラッシュさせる。vpk_read_packetがnb_channelsをチェックせずにlast_block_sizeを除算するため、nb_channels=0のヘッダーでSIGFPEが発生する。この脆弱性はサービス拒否(DoS)を引き起こすが、メモリ破壊やコード実行には至らない。修正案と回帰テストも提示されている。
vpk_read_packetは、nb_channelsがゼロかどうかをチェックせずにvpk->last_block_sizeをpar->ch_layout.nb_channelsで除算する。
HNでの議論
251- aeyes
このバグの修正パッチは4月に提出されました:https://lists.ffmpeg.org/archives/list/[email protected]...
編集:2024年にもこれについての議論がありました。
- dabinat
AIがソフトウェアの品質を上げも下げもする可能性があるのは興味深いですね。AIエージェントに自由にバグ探しをさせて、時間と労力を無駄にしても何も見つからなければ大した問題ではありません。給料をもらっている人間の開発者にとっては、時間の方がずっと重要です。
- justonenote
このバグの詳細やそれが有用な攻撃ベクトルかどうかはともかく、これはまったく驚くべきことではないのでは?
現在の私のLLMに対する見解は、彼らは疲労がないという点で超人的であり、人間に少なくとも公に知られているすべての主題についてほぼ完全な知識を持ち、有名な複雑なCコードベースでバグを探すためのハーネスをvibe codeできるという事実は、インターンレベルのことであり、ほとんどニュース価値がありません。
賢い意欲的なブラックハットは次にtmuxを標的にするでしょう。軽いLLM脱獄、軽いサプライチェーン攻撃(ウェブ検索結果)、そして特定の環境内でのLPEは、以前は特に有用ではありませんでしたが、自動モードで何時間も実行されるエージェントにとっては非常に価値のある足がかりになります。tmuxのコードの品質はわかりませんが、Cで書かれており非常に複雑で、この種の脅威に対抗するようにはまったく設計されていません。
- cptroot
これはFFmpegの実際のバグではありません。これは、カスタムAVIOモジュールを制御すれば、悪いデータを与えることでFFmpegをクラッシュさせることができるというデモンストレーションです。
- ks2048
ファザー(vibecodedかどうかに関わらず)が強力であることは間違いありませんが、すべての「/」を潜在的なゼロ除算エラーとしてマークするだけではだめなのでしょうか?
開発者は変数がゼロにならないと「知っている」と思うこともありますが、明示的にチェックされるかコンパイラによって保証されない限り、それを信頼すべきではありません。
- 1saadcodes
このようにして作られたファザーが実際にffmpegのバグを見つけたのは、かなりクールだと思います。
- BikiniPrince
面白いことに、gStreamer開発者で何かにぶつかっているのは分かっているのですが、Fableがおかしくなります。問題がどこにあるのかはおぼろげにしか見当がつきません。
来週、cyberに申し込むつもりですが、似たようなものを見つけるだろうと思います。
今のところ、それはただ迷惑なだけで、OpenAIのcyberの方がはるかにアクセスしやすかったのはありがたかったです。
- skupig
何か見落としているのでしょうか?誰が気にするのでしょう?これはセキュリティ問題ではなく、悪いデータによる悪用不可能なクラッシュに過ぎません。