セキュリティ研究者が、Linuxカーネルのバグは平均で2年以上検知されず、一部は20年以上存続することを発見した。20年にわたるカーネル開発を分析し、Jenny Guanni Qu氏はこれらの欠陥がクラウドシステム、エンタープライズ、数億のデバイスに静かに影響を与える方法を明らかにした。彼女の研究は、オープンソースソフトウェアのセキュアな維持の課題を強調している。
Linuxセキュリティ開発者のJenny Guanni Qu氏は、Linuxカーネルの脆弱性が長期間検知されずに潜伏し、広範なシステムに重大なリスクをもたらすことを明らかにした。包括的な研究で、彼女は20年にわたるLinuxカーネル開発を調査し、125,000件のバグ修正コミットをレビューした。分析の結果、平均バグは2年少し隠れたままとなり、多くのものがはるかに長く存続し、一部は20年を超えることがわかった。印象的な例として、2006年に導入され2025年にようやく修正されたネットワークバグがあり、ほぼ19年後である。この問題は、netfilterサブシステムでの参照カウント漏れで、デッドロックを解決するためのコミットに由来する。「皮肉なことに、コミットd205dc40798d自体が修正だった:「[NETFILTER]: ctnetlink: fix deadlock in table dumping」。Patrick McHardyは_put()呼び出しを削除してデッドロックを修正したが、それにより19年間存続するrefcount漏れを導入した」とQu氏は説明した。このバグは特定の条件下でメモリリークをゆっくり引き起こし、負荷がかかるまで数年間システムが安定しているように見せかけた。Qu氏の研究は、このような長寿命バグが検知しにくい理由を指摘している。2000年代初頭の古いカーネル部分は変更やレビューがほとんどない。部分修正は症状を扱うだけで根本原因を解決せず、悪用が生き残る。レースコンディション、参照カウントエラー、メモリライフサイクル問題は特に捕捉しにくい。Linuxのオープンソースモデルが精査を促すにもかかわらず、古い欠陥のバックログが残る。攻撃者の視点では、これらのバグは強力な攻撃ベクトルを提供し、ディストリビューション間で共有されるコードに影響する。CVEが割り当てられる頃には、数年間悪用されていた可能性がある。これに対処するため、Qu氏はVulnBERTを開発した。これはコード変更を脆弱性スキャンする機械学習モデルである。テストでは、偽陽性を低く抑えつつ90%以上の問題コミットを検知し、19年バグも含む。「VulnBERTはトリアージツールで、保証ではない。認識パターンの92%のバグを捉える。残り8%と新規バグクラスは人間レビューとファジングが必要」と彼女は述べた。新規カーネルは修正が速いが、レガシーコードでの継続発見は警戒したメンテナンスの必要性を示す。エンタープライズはカーネル更新を優先すべきで、これらの欠陥は高度攻撃でシステム完全乗っ取りを可能にする。