Linuxカーネルのネットワークボンディング機能に、2007年から実に19年近く潜んでいた権限昇格脆弱性「CVE-2026-43456」が報告された。発見したのはGMOサイバーセキュリティ byイエラエで、Googleのバグバウンティ「kernelCTF」経由で8万ドル以上の報奨金を獲得している。原因はbond_setup_by_slave()関数内のたった1行、bond_dev->header_ops = slave_dev->header_ops;。異なる構造体型のポインタを使い回してしまうtype confusionで、Linux 2.6.24〜6.12.77という広範なバージョンが対象になる。
なぜ19年も見逃されたのか #
原因は「発火条件の異常な狭さ」にある。悪用にはGREデバイスを329個チェインし、ヘッダ予約領域LL_RESERVED_SPACEを厳密に0x3ec0へ揃える必要がある。この精密さゆえ、KASANのような検知機構をすり抜けるほど破壊が局所化し、静的解析やレビューでも浮かび上がらなかった。発見のきっかけも狙ってのものではなく、ファジングツール「syzkaller」が偶然吐いたクラッシュログだったという。
skb_shared_info::flags を書き換える。SKBFL_ZEROCOPY_FLAG を強制的に立てる。uarg->callback 経由で権限昇格を達成。条件は複雑だが、報告者によれば成功率は99%以上、実行は1秒以内という安定ぶりだ。狭い発火条件は「見つかりにくさ」であって「攻撃の弱さ」ではないことを示す好例と言える。
パッチと現場が学ぶべきこと #
修正は2026年3月にコミット済みで、主要ディストリビューションの最新版には既に反映されている。未パッチ環境ではunprivileged_userns_cloneを無効化するか、bonding機能自体を止める緩和策が有効だ。
この件が示すのは、「長年動いているコードだから安全」という思い込みの危うさだ。カーネルの深部にある古いドライバコードは、条件次第で今なお未知の脆弱性を抱えている可能性がある。ファジングによる継続的な探索と、バグバウンティを通じた研究者へのインセンティブ設計が、こうした"時限爆弾"を掘り起こす数少ない手段であることを、今回のケースは改めて裏付けている。

COMMENTS 0
No comments yet — be the first to leave one.