10月26日、Bruno Ferreiraが「Lack of staff and funding likely led to the recent PHP security snafu; project has only one full-time employee, but that's just the tip of the iceberg」と題した記事を公開した。PHPで発覚したリモートコード実行(RCE)の重大脆弱性を契機に、同言語の開発・維持体制の脆弱さと、インターネット全体に蔓延する「古いPHPの放置」問題を詳しく論じている。
全Webサイトの約71%で使われているにもかかわらず、PHPのセキュリティ管理を担うPHP Foundationのフルタイム専任スタッフは事務局長のElizabeth Barron1人だけだ——今回の脆弱性対応を通じてこの事実が広く知られることとなった。残りは「ほぼパートタイム」の契約者14名が支えるという体制である。Linuxカーネルも同様にオープンな貢献モデルを採用しているが、こちらはRed HatやIntelなど大手メーカー各社が抱える多数のフルタイム開発者が関与しており、規模が根本的に異なる。
今回問題となった脆弱性の発端はOOM(Out of Memory=メモリ枯渇)状態に起因するメモリ管理の不具合だ。この不具合はPHPのメモリアロケータを不正な状態に陥らせ、最終的に任意コード実行(RCE)につながる経路を開く。OOMをトリガーとするメモリ破壊系の脆弱性は、細工されたリクエストを送り込むことで攻撃者が遠隔からコード実行できる点で深刻度が高い。
この問題が発見されたのは2024年のことだったが、修正作業は「何ヶ月にもわたって停滞と再開を繰り返した」とBarronは語っている。さらにセキュリティ企業Chainguardが誤ってエンバーゴ(情報公開禁止期間)を破るアクシデントが重なり、混乱に拍車をかけた。それでもBarronは「Foundationからの資金援助があったことで、複数人が最終的には週末も含めて昼夜問わず本件にフルタイムで対応できた」と述べており、資金がなければ対応はさらに困難だったと強調する。
コアの脆弱性もさることながら、記事が最も強く訴えるのが「古いPHPを動かし続けるインターネット」の問題だ。PHPインストール全体の約73%がすでにEOL(サポート終了)済みのバージョンを稼働させている。PHP 7は4年前にEOL、PHP 5.xは2018年にサポートが終了しているにもかかわらず、現在もWebサイト全体の約7.7%がPHP 5.x系で動作しているという。PHP 8.x系を使っているサーバーであれば今回のパッチ適用は理論上「数分」で完了するが、それでも多くのサイトが数時間〜数日のダウンを経験した。
PHP 5から7、7から8への移行はコードの一部書き換えを要するものの、大半の変更は機械的に処理できる。自動コード変換ツールも以前から提供されており(例:Rector)、非推奨になる関数やライブラリへの警告も長期間にわたって出されていた。記事はこの状況を「AIボットが脆弱性を探し回っているからではなく、怠慢・惰性・コスト削減という力学の方がはるかに大きかった」と結論付けている。
今回の件は、xz-utils(2024年のバックドア事件)やLog4j(2021年、数億台規模のシステムに影響)など、近年繰り返されてきた「少人数で維持される基盤的OSSが突然クローズアップされる」構図と重なる。AI活用によるセキュリティ脆弱性レポートの急増が、こうした慢性的な人員・資金不足の現実をさらに際立たせている。Barronは今回のインシデントを機に「PHPで生計を立てている企業が資金援助を増やしてくれることを期待する」と語っている。