FFmpegでゼロ除算バグを発見!「vibecoded」ファザーによる脆弱性調査の結果
We found a division by zero bug in FFmpeg with a vibecoded fuzzer
We found a division by zero bug in FFmpeg with a vibecoded fuzzer
FFmpegにおいて、vibecodedファザー(fuzzer)を用いてゼロ除算が発生するバグを検出しました。コードの脆弱性調査を行っている際に特定された今回の事象について、詳細なレポートを共有します。
AIによってソフトウェアの品質が上がることもあれば下がることもあるっていうのは面白いね。AIエージェントに漠然としたバグ探しをさせるのは簡単だし、それで時間と労力を無駄にして何も見つからなくても大した問題じゃない。人間は給料をもらって働いているし、その時間はもっと貴重だからね。
ファザー(vibecodedかどうかに関わらず)が強力なのは間違いないけど、すべての「/」をゼロ除算の可能性がある場所としてマークするだけじゃダメなの?開発者は変数がゼロにならないと「わかっている」つもりになることがあるけど、明示的にチェックするかコンパイラが保証してくれない限り、それは信用しちゃいけないと思う。
FFmpegが独自のGitサーバーを持ってるのは興味深いね。僕たちもそこに移行すべきかな?
これはFFmpegの実際のバグじゃないよ。カスタムAVIOモジュールを制御できれば、不正なデータを与えてFFmpegをクラッシュさせることが可能だっていうデモンストレーションに過ぎない。
このバグの詳細や、それが有益な攻撃ベクトルかどうかなんて置いといて、この結果に驚く要素なんて1ミリもないんじゃない?LLMに関する今の自分の意見は、疲労知らずで人間が公開されている知識のほぼすべてを網羅しているという点で超人的だってこと。有名な複雑なCコードベースでバグを探すハーネスをAIでサクッと書くなんてインターンレベルの作業だし、今さらニュースにもならないよ。賢い黒幕志望者は次はtmuxを狙ってくるだろうね。LLMへの軽い脱獄プロンプトや軽いサプライチェーン攻撃、それに特定環境下でのLPEとかを使ってね。これまではあまり役に立たなかったような攻撃でも、エージェントが何時間も自動で動いていれば、非常に強力な足がかりになる。tmuxのコードの質はよくわからないけど、Cで書かれていて非常に複雑だし、こういう脅威を防ぐように設計されていないのは確かだね。
なんか見落としてる?これ、誰が気にするの?セキュリティ上の問題じゃなくて、不正データに対する悪用不可能なクラッシュでしょ。
これに対するパッチは4月に投稿されてるよ:https://lists.ffmpeg.org/archives/list/ffmpeg-devel@ffmpeg.org/message/F4FVBV4GOAWHEPVJ4JAJLHQ23UPKDJ6I/ 追記:2024年にもこの件については議論されてたね。
面白いことに、gStreamerの開発中に何かにぶつかっているのはわかっているんだけど、Fableが暴走しちゃうんだ。どこに問題が潜んでいるのかはぼんやりとしか分かってない。来週、サイバーセキュリティに応募するから、似たようなものを見つけると思うよ。今はただただイライラするだけだけど、OpenAIのおかげでサイバー関連のアクセスはずっと楽になった。
こんな適当に組み上げたファザーが、実際にffmpegのバグを見つけたっていうのは結構クールだと思う。
このファザーのREADMEはAIが書いたデタラメの塊だよ。https://github.com/daedalus/fuzzer/