2014年の応急PHP修正、2000万インストール後に廃止
Original : My temporary PHP fix from 2014 has nearly 20M installs. Today I'm deprecating it
Pourquoi c'est important
Polyfillの長寿命化とサプライチェーンリスクの典型例として業界に警鐘を鳴らす
2014年にAOLのCMS移行用に書いた174行のPHP関数「http_build_url()」が、Packagistで約2000万回インストールされた。作者のJake A. Smithは2026年9月、xz Utils型の乗っ取りリスクを理由に、メンテナへの引き渡しを避け、正式に廃止(deprecated)を宣言した。
2014年、Jake A. SmithはAOLのCMSをPHP 5.2から5.3へ移行する際、削除されたpecl_http拡張の関数「http_build_url()」の代替として174行のPolyfillを書いた。「1〜2年で役目を終えると思っていた」と本人は振り返る。
しかし現実は違った。Packagistでのインストール数は累計約2000万回に達し、月間40万回以上のペースで今も増加中。多言語WordPressプラグインWPMLが直接バンドルしており、1.5万以上のサイトで稼働。さらにidna-convertライブラリ経由でSPIP(フランス製CMS)、Debian、Ubuntuにも組み込まれた。
コードには致命的なバグも潜んでいた。末尾スラッシュを含むURLのパス処理で、パス内のすべての文字「a」が消える問題が長年見過ごされていた。
Smithは廃止の理由として、PHP LeagueのURIライブラリとPHP 8.5の標準URI APIという代替手段の成熟を挙げる。新しいメンテナへの移譲は「xz Utilsバックドアのような攻撃の標的になるリスクがある」として拒否。パッケージは引き続きインストール可能だが、修正は行われない。