修正までに異様な時間を要した古いソフトウェアの脆弱性17選


2021年、現代コンピューティングの根幹をなすシステムに脆弱性が発見されました。攻撃者はこのシステムを悪用して任意のコードを実行できる状態でした。驚くべきことに、この脆弱性を抱えたコードは実に54年近く前のものであり、パッチも存在しなければ、今後提供される見込みもありませんでした。

幸いなことに、これは問題のシステムがマービン・ミンスキーによる1967年のユニバーサルチューリングマシンの実装だったためです。コンピュータサイエンスの分野にとって理論的には極めて重要な存在であるものの、実際のコンピュータに組み込まれたことは一度もありませんでした。しかしミンスキーの設計から10年ほど後、初期のUnixやDOSが使われ始め、その系譜は21世紀の今日まで続いています。こうしたシステムの中には、何年、あるいは何十年も水面下にバグが潜んでいたものもあります。

Claude Mythosのような最先端のAIツールは、潜在的な脆弱性の発見を大幅に加速させています。発見の速度はもはや人間の注意力や手作業によるトリアージの速さに縛られなくなったためです。この脆弱性発見の加速は、AIツールが新たなエクスプロイトの分類を発見しているからではなく、スキャン・推論の連鎖・エクスプロイト経路のテストをマシン並みの速度でこなせるようになったことによるものです。

以下は、長らく休眠状態にあったものの発見・修正までに10年以上を要した注目すべき脆弱性17件です。放置されていた期間が長い順に紹介します。

Libpngグラフィックスライブラリの欠陥

経過年数: 30年
混入時期: 1995年
修正時期: 2026年2月

研究者らは、広く使われているオープンソースライブラリlibpngに、30年以上前の技術初公開時から存在し続けていた古い脆弱性を掘り起こしました

このヒープバッファオーバーフロー脆弱性(CVE-2026-25646)は、悪意を持って細工されたPNGラスター画像ファイルを与えられると、この欠陥のあるソフトウェアを使用するアプリケーションがクラッシュするというものです。悪用は難しいものの、情報漏えいやリモートコード実行のリスクをはらんでいます。

脆弱性のあるpng_set_quantize関数(以前はpng_set_ditherと呼ばれていました)はほとんど使われることがありません。この点と悪用の難易度の高さが相まって、CVSSスコアは8.3にとどまり、「緊急」ではなく「重要」レベルのリスクと評価されています。

とはいえ、多くのLinuxディストリビューション(Debian、Red Hat、Ubuntu)やデスクトップアプリ、一部のJavaランタイムはこの脆弱性のあるバージョンのライブラリに依存しており、パッチ適用が必要です。

PrintDemon

経過年数: 24年
混入時期: 1996年
修正時期: 2020年5月

プリンターはITにとって頻繁に頭を悩ませる存在です。とにかく機種の数が多く、コンピュータやOSを作っているベンダーとは別の会社が製造しており、しかもユーザーは接続すればすぐに印刷できることを期待します。マイクロソフトは創業初期、プリンタードライバーのインストールを比較的簡単で手間のかからないものにしようと苦心してきました。しかし2020年に発見されたPrintDemonと名付けられたバグは、1990年代当時、その配慮がやや行き過ぎていたことを示すものであり、その代償を数十年にわたって払うことになりました。

この脆弱性の核心は3つの事実にあります。管理者権限を持たないユーザーでもWindowsマシンにプリンターを追加できること、その基盤となる仕組み上、物理的なプリンター機器ではなくファイルへの印刷が可能であること、そして重要な印刷サービスがWindows上でシステム権限で動作していることです。つまり、手順さえ正しければ、ファイルシステム上のどこにでも(実行可能ファイルであっても、権限の高いディレクトリであっても)ファイルを作成できる「プリンター」ドライバーを構築できてしまうのです。この設計上の欠陥を悪用したエクスプロイトは数多く生み出されてきましたが、実はStuxnetもその一つでした。しかしPrintDemonは本当に厄介な代物で、それが可能になった理由は、マイクロソフトが長年施してきた修正が、印刷サブシステムの完全な作り直しではなく、あくまでパッチの積み重ねに過ぎなかったからです。

Winsiderの説明によれば、「ファイルシステムに非常に細かい変更を加えるだけで、どのプロセスにも帰属しないファイルのコピー・書き込み動作を実現できます。特に再起動後はその傾向が強まります……巧妙に細工されたポート名を使えば、スプーラーに任意の場所へ[実行可能形式の]ファイルを置かせることも容易に想像できるでしょう」とのことです。

win32k.sysの脆弱性

経過年数: 23年
混入時期: 1996年
修正時期: 2019年

2019年、Microsoft WindowsのWin32 APIに2つの大きな脆弱性が検出されました。1つ目は4月に発見されたUse-After-Free脆弱性で、OSのコーディングミスによりプログラムが本来保護されているはずのシステムメモリにアクセスできてしまうというものでした。この脆弱性は、悪意のあるハッカーが実際にコンピュータの制御を奪うために悪用しようとしているのをセキュリティ研究者が発見したことで判明しました。もう1つは12月に発見された特権昇格の脆弱性で、OSのウィンドウ切り替え機能に潜んでいました。こちらも同様に、キー入力をシミュレートしてメモリリークを引き起こす実際の攻撃の過程で発見されています。

両方の脆弱性の起源はWindowsの黎明期にまでさかのぼります。カスペルスキーのシニアセキュリティ研究者ボリス・ラーリン氏は2019年当時、次のように説明していました。「この問題は、Win32のグラフィックスエンジンの大部分がパフォーマンス向上のためユーザーレベルからカーネルへ移された、WIN32KがWindows NT 4.0でデビューした時代にまでさかのぼります」。そしてこの2件の脆弱性は修正されたものの、マイクロソフトがはるか昔に下したこの決定は、それよりはるかに広範な影響を及ぼしてきましたし、今後もそれは続くだろうとラーリン氏は当時述べていました。「長年にわたり、WIN32Kコンポーネントは、Windowsで発見されたカーネルのセキュリティ脆弱性全体の半分以上の原因となってきました」。

PuTTYのヒープオーバーフロー

経過年数: 20年9カ月
混入時期: 1999年1月
修正時期: 2019年10月

PuTTYは、シリアルコンソール、ターミナルエミュレーター、各種ネットワークファイル転送アプリケーションを含む無料のオープンソースツール群で、SSHなどの暗号化方式が組み込まれています。もともとUnix管理者が当然のように使っていたツールをWindowsやMac OSにもたらすために開発されましたが、その後対象範囲を拡大し、現在ではUnixシステムでも広く使われています。PuTTYはネットワーク接続を保護するために設計されたものですが、実はその中核部分に脆弱性が潜んでいたことが判明しました。これは、長さが不十分なSSHキーによって引き起こされ得るヒープオーバーフローで、PuTTYのクラッシュ、あるいはリモートコード実行につながる可能性がありました。

この脆弱性はバグ報奨金プログラムの一環としてHackerOneに報告され、報告者は3,645ドルの報奨金とPuTTYチームからの感謝を受け取りました。PuTTYチームは、このバグが1999年までさかのぼる最も初期のソースコードのバージョンから既に存在していたと指摘しています。

PostgreSQLデータベースの脆弱性

経過年数: 20年以上
混入時期: 2005年
修正時期: 2026年2月

AIを活用したセキュリティ分析ツールが、PostgreSQLに重大な脆弱性を発見しました。これはこのオープンソースリレーショナルデータベース技術の初期バージョンにまでさかのぼる、20年以上前からの欠陥に起因するものです。

F5の開発者は警告しています。この脆弱性を悪用されるとクラッシュを引き起こす可能性があり、条件によっては、特にアドレス空間配置のランダム化(ASLR)が無効になっている場合、任意のコード実行を許してしまう恐れがあるとのことです。

システム管理者に対しては、オープンソース版Nginxのパッチ適用済みバージョンである1.30.1および1.31.0へのアップデートが強く推奨されています。商用製品のNginx Plusについても、CVE-2026-42945の脆弱性、およびDepthFirstが発見した深刻度の低い3件の欠陥に対するパッチが適用されました。詳細はブログ記事で説明されています。

SIGRed DNS脆弱性

経過年数: 17年
混入時期: 2003年
修正時期: 2020年

DNSはインターネットを支える、あまり評価されていない基盤の一つです。あなたのコンピュータが特定のURLに対応するIPアドレスを知る仕組みがこれです。このシステムは階層構造になっており、「このコンピュータはどこにあるのか」という問いへの答えを知っているDNSサーバーを探して、要求がピラミッドの上下に送られます。その結果、DNSはあらゆる主要なOSに組み込まれています。

2020年、マイクロソフトは自社版DNSに重大な脆弱性があると公表しました。このコードには17年間にわたり脆弱性が潜んでいたことになります。発見者であるチェック・ポイントによってSIGRedと名付けられたこの脆弱性は、DNSパケットの署名部分に仕込まれたエクスプロイトコードによって引き起こされ得る、Windows DNSサーバーのバッファオーバーフローの欠陥でした。悪意のあるネームサーバーが要求への応答としてこうしたパケットを送信すれば、ほとんどのセキュリティ保護を回避し、マイクロソフトのDNSサーバーへのリモートアクセスを獲得できる可能性がありました。この攻撃はワーム化する可能性もはらんでおり、つまりユーザーの介入なしに自動化・拡散し得るものでした。

LinuxカーネルベースのKVM仮想化モジュールにおけるJanuscape脆弱性

経過年数: 16年
混入時期: 2010年
修正時期: 2026年6月

Linuxカーネルベースの仮想化モジュール(KVM)に長らく休眠状態だった脆弱性が、マルチテナントのクラウド環境や仮想化された企業サーバーに任意のコード実行のリスクをもたらしています。

Januscapeと名付けられたこの重大な脆弱性は、攻撃者がVMから脱出してホストシステム上でマルウェアを実行するための潜在的な手段を生み出します。

より具体的には、CVE-2026-53359の脆弱性は、x86 CPUアーキテクチャのマシン上で動作するKVMのシャドウMMUエミュレーションにおけるUse-After-Freeメモリバグに起因しています。そのため、この重大な脆弱性は、クラウドプロバイダーや企業がサーバー上で機密性の高いプロセスを分離するために依拠しているセキュリティ境界を回避してしまいます。

この脆弱性を発見したセキュリティ研究者のヒョヌ・キム氏(Hyunwoo Kim)によると、この欠陥は2010年にLinuxカーネルのコードに導入されたソフトウェアに起因しており、IntelとAMDの両方のCPUで動作する初のKVMゲスト・ホスト脱出脆弱性だということです。

再び浮上したPythonのtarfile脆弱性

経過年数: 15年
混入時期: 2007年
修正時期: 2022年9月

サイバーセキュリティ企業のTrellixは、2007年に初めて特定されたPythonのtarfileモジュールに影響を及ぼす脆弱性CVE-2007-4559が、少なくとも2022年9月まで数十万件ものリポジトリに影響を及ぼし続けていたことを発見しました。

「無関係な脆弱性を調査している最中に、Trellix Advanced Research CenterはPythonのtarfileモジュールの脆弱性に偶然行き当たりました」と、Trellix Threat Labsの脆弱性研究者カシミール・シュルツ氏は同社のブログに記しています。「当初は新たなゼロデイ脆弱性を発見したと考えていました。しかし調査を進めるうちに、これが実はCVE-2007-4559であることに気づいたのです」。

NISTによると、CVE-2007-4559は、Pythonのtarfileモジュールにあるextract関数およびextractall関数のディレクトリトラバーサル脆弱性で、TARアーカイブ内のファイル名に「..」という並びを仕込むことで、ユーザーの介入を伴うリモート攻撃者が任意のファイルを上書きできるというものです。

シュルツ氏によると、悪意ある攻撃者は、tarファイルにファイルを追加する前にメタデータを解析・変更するフィルターをユーザーが追加できるtarfileモジュールに、わずか6行のコードを加えるだけでエクスプロイトを作成できるとのことです。CVE-2007-4559は「複雑なセキュリティトピックについての知識がほとんど、あるいは全くなくても悪用できる、驚くほど容易な脆弱性です。この事実と、この脆弱性が実際に広く蔓延している状況により、Pythonのtarfileモジュールは世界中のインフラを脅かす巨大なサプライチェーン問題と化しています」。Trellixはこの脆弱性の影響を受けるリポジトリを30万件以上発見しました。

Trellixはこの脆弱性を特定するためのスキャンユーティリティを開発し、複数のオープンソースリポジトリにパッチを適用しました。

Linux SCSIサブシステムのバグ

経過年数: 15年
混入時期: 2006年
修正時期: 2021年3月

SCSIは1980年代生まれのデータ転送規格ですが、今日でも一部の環境で使われ続けています。できる限り柔軟かつ汎用的であることを常に目指してきたLinuxには、これを必要とするシステムのために今なお広範なSCSIサブシステムが存在しています。これらのモジュールは自動モジュールロードによって利用可能になります。これは、必要なときにOSが必要なシステムコードを取得してインストールする仕組みで、SCSIドライブをLinuxマシンに接続した際、必要な対応コードをわざわざ探し回らずに済むという利点があります。

サイバーセキュリティコンサルティング企業のGrimmは、2021年3月に発見したLinuxのこのSCSIコードに関する複数のバグについて詳細な分析を公開しました。1つは、一般ユーザーがroot権限を取得できてしまうバッファオーバーフロー脆弱性で、他はカーネルの情報がユーザー空間に漏えいし得るエラーでした。いずれも、権限のある情報を取得したり、対象マシンに対するDoS攻撃の一部として利用したりできる可能性がありました。Grimmはこれらのバグを2006年にまでさかのぼるとしており、これらは「このコードが開発された当時、セキュリティを意識したプログラミング手法が十分に浸透していなかったことの表れだ」と辛辣に指摘しています。

Domain Time IIのman-on-the-side攻撃

経過年数: 14年
混入時期: 2007年
修正時期: 2021年4月

同じネットワーク上の2台のコンピュータの時刻が一致しない場合、その結果は単なる不便から大惨事までさまざまな影響を及ぼしかねません。この長年の課題を解決するために作られたのが、Windows、Linux、Solarisで使われているクローズドソースアプリケーションDomain Time IIです。

しかしDomain Time IIは、その存在期間のほとんどにわたって非常に深刻な脆弱性を抱えていました。ユーザーが設定した間隔または条件に従い、このプログラムはソフトウェアのベンダーであるGreyware Automation Products社が運営するアップデートサーバーにUDPクエリを送信します。サーバーがURLで応答すると、Domain Time IIは管理者権限でプログラムを実行し、そのURLからアップデートをダウンロード・インストールします。

問題はここにあります。もし悪意のある攻撃者がGreywareのサーバーより先にそのクエリへ応答できてしまえば、その攻撃者は自前の応答を送信し、Domain Time IIに攻撃者が望むマルウェアをダウンロードさせることができるのです。真の中間者攻撃(MITM)では攻撃者は双方向の通信を傍受しますが、これとは対照的に、このman-on-the-side攻撃では対象マシンへの正規の応答を止めることができないため、攻撃者は自分の応答をより速く送信する必要があります。

実際には、これを実行するために攻撃者は対象のローカルネットワーク上のコンピュータを制御下に置く必要があります。しかしこの攻撃は、攻撃者がローカルネットワーク内のより価値が高く安全性の高いマシンへ侵入を拡大する手段になり得ます。この脆弱性を発見したセキュリティ企業Grimmは、この欠陥が少なくとも2007年までさかのぼるバージョンのソフトウェアに存在していたと指摘しています。

インメモリストアRedisの重大な脆弱性

経過年数: 13年
混入時期: 2012年
修正時期: 2025年10月

インメモリストアRedisの脆弱性は、このデータベースをホストするサーバーに重大なリスクをもたらしました。

CVE-2025-49844、通称RediShellと呼ばれるこの脆弱性は、Redisのコードベースに約13年間存在し続けてきたUse-After-Freeメモリ破損バグに起因しており、リモートコード実行のリスクをはらんでいます。

この脆弱性の悪用には認証が必要ですが、認証を有効にしないままインターネットに公開されているRedisインスタンスは推定6万件に上り、これらのシステムは攻撃に対して無防備な状態でした。この脆弱性を発見したのはWizの研究者らで、彼らは2025年10月の公開の数週間前、2025年5月のPwn2Own Berlinコンテストでこれを実際に利用しています。

LionWikiのローカルファイルインクルージョン

経過年数: 11年11カ月
混入時期: 2008年11月
修正時期: 2020年10月

LionWikiは、PHPで書かれたミニマリスト志向のWikiエンジンです。人気の高い他の多くのWikiエンジンとは異なり、LionWikiはデータベースを使わず、完全にファイルベースで動作します。シンプルさを追求していることがこの製品の強みですが、それが重大な脆弱性を生む原因にもなっています。

要するに、特定のLionWikiインスタンスを構成する各種ファイルは、対応するページのURLに含まれるファイル名やパス名を通じてアクセスされます。つまり、正しく細工されたURLさえあれば、LionWikiインスタンスをホストしているサーバーのファイルシステムをたどることができてしまうのです。こうした試みをブロックするためのURLフィルタリング機能は用意されているものの、Infosec Instituteのサイバーレンジエンジニアであるジューン・ワーナー氏が発見したように、比較的簡単に回避できてしまいます

ワーナー氏が指摘した点の一つは、この脆弱性が修正の試みにもかかわらず存続し続けたことです。「最初の緩和策は2009年7月に導入され、その後2012年1月により広範な緩和策が導入されました」と同氏は述べています。「これらの緩和策にもかかわらず、コードは依然として同種の攻撃に対して脆弱なままでした。この脆弱性はさらに8年間コード内に留まり、2020年10月になってようやく、緩和策を回避する方法とともに再発見されたのです」。この脆弱性が正式に報告された後、開発者によってパッチが適用されました。

sudoのhostオプション

経過年数: 11年10カ月
混入時期: 2013年9月
修正時期: 2024年7月

sudoコマンドは、その実行権限を持つユーザーに超強力なユーザー権限を付与する、あらゆるUnix管理者にとって欠かせないツールです。この権限にアクセスするには、ユーザーはsudoersと呼ばれる設定ファイルに登録されている必要があります。多くの組織は多数のUnixホストを一元的に管理しているため、sudoersには各ユーザーがsudo権限を持つ特定のホストの一覧を含めることができ、これにより設定ファイルを一度書けば、組織内の全ホストに配布できるようになっています。

問題は、sudoersファイルにアクセスして自分や他のユーザーがどのホストでsudo権限を持っているかを確認するには、自分自身がsudo権限を持っている必要があるという点です。しかし、ホスト固有の権限を表示するためのコマンドラインフラグが悪用され、sudoに対してあたかも別のホスト(場合によってはそのユーザーが昇格した権限を持つホスト)上で実行されているかのようにコマンドを扱わせるよう仕向けることが可能でした。これにより、ローカルマシン上ではその権限を持たないはずのユーザーが、sudoersの編集を含むコマンドを実行できてしまう可能性がありました。このセキュリティ上の欠陥はそれほど深刻とは評価されていませんが、実に12年近くもの間、発見されずに潜んでいたことになります(同時に明らかになった、chrootオプションに関するもう一つのより深刻な欠陥は、こちらに比べればわずか2年というひよっこです)。

HashiCorp VaultおよびCyberArk Conjurのロジック欠陥

経過年数: 10年
混入時期: 2015年
修正時期: 2025年8月

HashiCorp VaultおよびCyberArk Conjurという2つのオープンソース認証情報管理システムのコンポーネントに存在する複数の欠陥は、認証バイパスや、本来保護されているはずのシークレットの窃取・消去など、さまざまな攻撃への扉を開いていました。

HashiCorp VaultとCyberArk Conjurはいずれも、APIキー、データベースパスワード、証明書、暗号鍵といったシークレットを保存し、そのアクセスを制御するために使われています。どちらの技術もDevSecOpsパイプラインで一般的に利用されています。

Cyataの研究者らは、認証・ポリシー適用を担うコンポーネントのロジック欠陥に着目した手動のコードレビューを行い、一連の問題を発見しました。その多くは、広く使われているオープンソースのシークレット管理ボルトのコードベースに、自動化ツールが通常検出するメモリ破損の問題ではなく、何年もの間隠れたまま存在していたものでした。

この2つのシークレット管理ボルトで合計14件の脆弱性の発見につながったこの研究の成果は、2025年8月のBlack Hat USAで発表されました。

HashiCorp Vaultにおける最も深刻な脆弱性(CVE-2025-6000)は、保存されたシークレットを復号するために必要な鍵を含む重要なファイルを攻撃者が削除できる仕組みを生み出し、データへのアクセスを不能にするものでした。

これらの脆弱性はすべて、研究成果が一般公開される前に対処が完了しています。

Linux GRUB2のセキュアブートの穴

経過年数: 10年
混入時期: 2010年
修正時期: 2020年7月

BIOSに代わってUEFIが導入された当時、これはセキュリティの最先端とみなされていました。OSを起動するブートローダーソフトウェアのレベルで動作する攻撃に対抗する機能を備えていたためです。この要となるのが、セキュアブートと呼ばれる仕組みで、署名済み暗号証明書の連鎖によって各ブートローダープログラムの正当性を検証します。UEFIのルート証明書はマイクロソフトによって署名されており、Linuxディストリビューションはそれぞれ独自の検証済み証明書を持つ独自のブートローダーを、この連鎖のさらに下位に配置します。

しかし、UEFI対応証明書を持つ広く普及しているLinuxブートローダーであるGRUB2には、その設定ファイルに挿入された悪意のあるコードによって悪用され得るバッファオーバーフロー脆弱性が含まれていました(GRUB2自体は署名されていますが、ローカル管理者が編集できるよう意図された設定ファイルは署名されていません)。この穴はEclypsiumによって発見されました。攻撃者はこの攻撃を実行するために対象マシンをある程度ローカルで制御下に置く必要がありますが、もし攻撃に成功すれば、そのコンピュータが起動するたびに制御を維持し続けられるようになり、システムから排除するのが困難になります。

Telnet

経過年数: 10年8カ月
混入時期: 2017年5月
修正時期: 2026年1月

Telnetは、テキストベースのターミナルセッションを介して別のマシンに遠隔ログインするための初期のインターネットプロトコルおよび関連ツールです。1990年代半ば以降、より安全で暗号化されたSSH技術に取って代わられたものの、Telnetは組み込みシステムやネットワーク機器、その他のレガシーシステムで今なお広く使われています。

2017年5月にリリースされたコード変更で導入された、容易に悪用可能なTelnet認証バイパス脆弱性(CVE-2026-24061)は、パッチ未適用のバージョンのソフトウェアを実行しているデバイスのTelnetサーバーがインターネットに公開されている場合、リモートからの侵害に対して無防備な状態にさらしていました。

翻訳元: https://www.csoonline.com/article/570815/old-software-bugs-that-took-way-too-long-to-squash.html

ソース: csoonline.com