PHP Composer の深刻な脆弱性 CVE-2024-24821 が FIX:ただちにパッチを!

CVE-2024-24821: A Critical Alert for Composer’s PHP Dependency Management

2024/02/08 SecurityOnline — Web 開発の喧騒の中で登場した Composer ツールは、PHP プロジェクトの依存関係を管理するための要である。ライブラリの組み込みと更新を簡素化する Composer は、ワークフローを効率化したい開発者にとって欠かせないものとなっている。しかし、脆弱性 CVE-2024-24821 が発見されたことで、ユーザーは潜在的なコード実行や権限昇格の脅威にさらされ、Composer の信頼性に懸念が生じている。

この深刻な脆弱性 CVE-2024-24821 (CVSS:8.8) の原因は、起動中の Composer が、ローカルの作業ディレクトリから、いくつかのファイルをインクルードする方法にある。

この無害に見えるプロセスは、特定の条件下において、任意のコード実行への扉を開いてしまう。具体的に言うと、Composer が改ざんされたファイルを含むディレクトリで実行された場合に、この脆弱性の悪用に成功した攻撃者は、任意のコード実行/ローカル権限の昇格/横移動による探索などを可能にして、さらなる悪意の行為へとつながる可能性を生じる。

さまざまな環境で、Composer は広く利用されているため、この脆弱性による影響が懸念される。この脆弱性は、重要な “composer.phar” の自己更新機能を含む、すべての Composer CLI (Command Line Interface) に影響を及ぼす。

リスクの高いシナリオとして想定されるのは、sudo 権限での Composer の実行/信頼されていないプロジェクトのパイプラインでの Composer の実行/複数の開発者が同じプロジェクトを操作する共有環境の Composer の実行などである。

脆弱性 CVE-2024-24821 は、Composer のバージョン 2.0〜2.2.23/2.3〜2.7 に影響を及ぼす。この問題に迅速に対処する Composer の開発者は、バージョン 2.7.0/2.2.23 をパッチとしてリリースした。潜在的な悪用からプロジェクトを保護するために、ユーザーに推奨されるのは、可能な限り早急なパッチ適用バージョンへのアップグレードである。

パッチが適用されたバージョンへの迅速なアップデートが不可能な場合には、この脆弱性の悪用からの保護のために、いくつかの緩和策が推奨されている。その中でも重要な対策は、Composer を実行するための sudo 権限を削除することであり、root 権限昇格のリスクを大幅に減らすことが可能になる。さらに、信頼されていないディレクトリで Composer を実行する場合にも、注意が必要である。”vendor/composer/InstalledVersions.php” と “vendor/composer/installed.php” における信頼されていないコードの有無は、重要なステップである。疑わしい場合は、以下のコマンドを使って、これらのファイルをリセットできる:

rm vendor/composer/installed.php vendor/composer/InstalledVersions.php
composer install -no-scripts -no-plugins

この方法により、潜在的に悪意のある変更が確実に削除され、より安全な開発環境が復活する。

PHP の開発において、Composer は重要な役割を果たし続けているが、今回のインシデントは、セキュリティに対する警戒態勢の維持の重要性を強調するものだ。依存関係を定期的に更新し、安全なコーディングのためのベストプラクティスを遵守し、脆弱性について情報を得ることは、ソフトウェア開発の複雑な状況を、安全に乗り切るための不可欠なステップである。