PackagistPHPリポジトリを危険にさらす脆弱性がComposerで確認されました

数日前 重大な脆弱性が特定されたというニュースが報じられました en の依存関係マネージャー 作曲家 (CVE-2021-29472)これにより、ソースコードをダウンロードする方向を決定する特別に形成されたURL値を持つパッケージを処理するときに、システム上で任意のコマンドを実行できます。

この問題は、GitDriver、SvnDriver、およびHgDriverコンポーネントに現れます。 Git、Subversion、およびMercurialソース管理システムで使用されます。 この脆弱性は、Composerバージョン1.10.22および2.0.13で修正されました。

特に、306.000のPHP開発者パッケージを含み、月に1.400億以上のダウンロードを提供するComposerのデフォルトのPackagistパッケージリポジトリが特に影響を受けます。

PHPエコシステムでは、Composerはソフトウェアの依存関係を管理およびインストールするための主要なツールです。 世界中の開発チームがこれを使用して、アップグレードプロセスを容易にし、すべての環境とバージョンでアプリケーションを簡単に実行できるようにします。

実験では、問題に関する情報がある場合、攻撃者はPackagistインフラストラクチャを制御し、メンテナの資格情報を傍受するか、パッケージのダウンロードをサードパーティのサーバーにリダイレクトして、変更を加えたパッケージバリアントの配信を手配できることが示されました。依存関係のインストール中にバックドアを置き換える悪意のあるユーザー。

エンドユーザーへの危険は限られています 通常、composer.jsonのコンテンツはユーザーによって定義され、ソースへのリンクは、通常は信頼できるサードパーティのリポジトリにアクセスするときに渡されるためです。 主な打撃は、Packagist.orgリポジトリとPrivatePackagistサービスにありました。 ユーザーから受信したデータを転送してComposerを呼び出します。 攻撃者は、特別に細工されたパッケージをドロップすることで、Packagistサーバー上でコードを実行する可能性があります。

Packagistチームは、通知から12時間以内に脆弱性を解決しました 脆弱性の。 研究者は22月27日にPackagist開発者に非公開で通知し、この問題は同じ日に修正されました。 脆弱性を修正したComposerの公開アップデートが28月XNUMX日にリリースされ、詳細がXNUMX月XNUMX日に公開されました。 Packagistのサーバーのログを監査したところ、この脆弱性に関連する疑わしいアクティビティは見つかりませんでした。

引数インジェクションエラーは、コードレビュー中に見落とされがちで、ブラックボックスの相互作用では完全に見落とされる非常に興味深いクラスのエラーです。

この問題は、URL検証コードのエラーが原因で発生します ルートcomposer.jsonファイルとソースダウンロードリンクにあります。 このバグは2011年XNUMX月からコードに存在しています。Packagistは特別なレイヤーを使用して、コマンドライン引数を指定して「fromShellCommandline」を呼び出すことで実行される特定のソース制御システムにバインドされることなく、コードのダウンロードを管理します。

問題の核心は、ProcessExecutorメソッドを使用してURLに追加の呼び出しパラメーターを指定できることです。 このようなエスケープは、GitDriver.php、SvnDriver.php、およびHgDriver.phpドライバーにはありませんでした。 GitDriver.php攻撃は、「gitls-remote」コマンドがパスの後に追加の引数を指定することをサポートしていなかったという事実によって妨げられました。

HgDriver.phpへの攻撃は、「– config」パラメーターを「hq」ユーティリティに渡すことで可能でした。これにより、「alias.identify」構成を操作して任意のコマンドの実行を整理できます。

研究者は、Packagistと同様のURLでテストパッケージを送信することにより、公開後に、現在のディレクトリ内のファイルのリストを含むAWS上のPackagistサーバーのXNUMXつからサーバーがHTTPリクエストを受信することを確認しました。

メンテナは、packagistのパブリックインスタンスでこの脆弱性が以前に悪用された兆候を特定しなかったことに注意する必要があります。

最後に、それについてもっと知りたい場合は、詳細を調べることができます 次のリンクで。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:AB Internet Networks 2008 SL
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。