時として、最も予期せぬ脆弱性は新しいコードの中ではなく、何十年にもわたり非の打ちどころがないと見なされてきた基盤の中に潜んでいます。今週、開発者はLinuxエコシステムの要であるGNU Cライブラリ(glibc)におけるCVE-2026-0915を公表しました。この欠陥は1996年までさかのぼるコードに残存しており、ようやく今回修正されました。
問題は、getnetbyaddrおよびgetnetbyaddr_r関数に関するもので、特定の条件下で未初期化のスタックデータをDNSリゾルバへ送信し得ます。これらの関数がネットワーク値0で呼び出された場合、生成されるDNSクエリは偶発的なメモリ内容を用いて組み立てられます。これにより、規模は小さいもののスタックデータ漏えいが発生します。プライバシーへの影響は軽微と見なされていますが、このような流出は理論上、攻撃者がASLR(アドレス空間配置のランダム化)機構を回避する助けになり得ます。
ライブラリの設計者は、悪用シナリオは極めてまれだと指摘しています。実際のアプリケーションがこれらのAPIをヌルのネットワーク値で呼び出すことはほとんどなく、漏えいも連続したスタック領域に限定されます。それでも、デジタル環境にとってこれほど根本的なライブラリにおいて、このエッジケースが約30年もの間見過ごされてきたというのは、深い皮肉と言えるでしょう。
修正はglibcリポジトリに取り込まれ、ヌルのネットワーク値は未初期化メモリにアクセスすることなく、予測可能な既定のクエリを引き起こすようになりました。同時に、2つ目の脆弱性CVE-2026-0861も明らかになりました。この欠陥はmemalign関数に関するもので、過度に大きいアラインメント値が処理されると整数オーバーフローが発生し、その後ヒープ破損につながります。前者とは異なり、この不具合は2019年と比較的最近に導入されたもので、こちらも同様に修正されています。
両方の修正を含むglibcバージョン2.43は、2月上旬にリリースされる見込みです。大多数のユーザーにとって、これらの欠陥の影響は最小限にとどまるでしょう。しかしこの一件は、最も由緒ある普遍的なコンポーネントでさえ、世代を超えて密かに誤りを抱え得るという痛切な教訓を示しています。
翻訳元: https://meterpreter.org/foundations-of-sand-30-year-old-glibc-vulnerability-exposed-in-linux-core/