PEAR PHP リポジトリの 15年前の脆弱性が発覚:サプライチェーン攻撃にいたる可能性

15-Year-Old Bug in PEAR PHP Repository Could’ve Enabled Supply Chain Attacks

2022/04/01 TheHackerNews — PEAR PHP リポジトリにおいて、15年前のセキュリティ脆弱性が公開され、攻撃者が不正なアクセス権を取得し、不正なパッケージの公開や、任意のコード実行可能にするなどの、サプライチェーン攻撃にいたることが判明した。SonarSource の脆弱性研究者である Thomas Chauchefoin は、「1つ目のバグの悪用に成功した攻撃者は、あらゆる開発者のアカウントを乗っ取り、悪意のリリースを公開することができる。2つ目のバグに関しては、攻撃者がセンタライズされた PEAR サーバーへの持続的なアクセスを獲得できるようになる」と、今週に発表された記事で述べている。

PEAR とは、PHP Extension and Application Repository の略であり、再利用可能な PHP コンポーネントのためのフレームワークと配布システムのことである。

2007年3月のコード・コミットで、この機能の実装が初めて紹介されたときから、1つの問題があった。それは、パスワード・リセット機能で、安全とは言えない暗号化のための mt_rand() PHP 関数を使用することで、攻撃者が 50回以下のトライで、有効なパスワード・リセット用トークンを発見できるという問題である。

このエクスプロイトを武器に脅威アクターは、既存の開発者や管理者のアカウントをターゲットにして、それらを乗っ取り、すでに開発者が管理しているパッケージの、トロイの木馬化したバージョンを公開し、結果として広範囲におよぶサプライチェーン攻撃を引き起こす可能性があるとされる。

2つ目の脆弱性は、前述の欠陥を用いてイニシャル・アクセスを得た攻撃者が、古いバージョンの Archive_Tar に依存している pearweb を利用することで悪用が可能となる。この Archive_Tar には、深刻度の高いディレクトリ・トラバーサルの脆弱性 CVE-2020-36193 (CVSS: 7.5) があり、任意のコードの実行につながる恐れがある。

Chauchefoin は、「これらの脆弱性は 10年以上も前から存在しており、探し出して悪用することは容易である。したがって、PEAR に依存してきた企業から、セキュリティ・コントリビューションが無かったことに疑問を投げかけたい」と述べている。

今回の問題が発見されてことで、PHP のサプライチェーンでセキュリティの問題が発覚するのは、1年ほどの間で2度目のことになる。2021年4月の下旬ことだが、PHP パッケージ・マネージャー Composer に、任意のコマンド実行を脅威アクターに許してしまう、深刻な脆弱性が発覚した。

NPM エコシステムで広く使用されているライブラリを狙い、ロシアに抗議するプロテストウェア事件をきっかけに、ソフトウェアのサプライチェーン攻撃が深刻な脅威として浮上している。それにより、ソフトウェアのコード依存に関連する、セキュリティ問題が再び脚光を浴びている。Open Source Initiative は、「オープンソースから得られる利益を、その武器化が上回ってしまうほどの、破壊的なサイバー行為だ」と呼ぶに至っている。

この記事における1つ目の脆弱性ですが、SonarSource のブログを見ると CVE-2020-28948 と CVE-2020-28949 が記載されているので、これなのかと推測しています。なお、最近のリポジトリに関するトピックとしては、2022年2月22日の「25 種類の 悪意の JavaScript ライブラリ:NPM 公式パッケージ・レジストリ」や、3月29日の「悪意の NPM パッケージを量産:サプライチェーン攻撃のための驚異のシステム」などがあります。よろしければ、ご参照ください。

%d bloggers like this: