23,000のリポジトリで広く利用されているGitHub Actionの「tj-actions/changed-files」を狙ったサプライチェーン攻撃により、脅威者がGitHub ActionsのビルドログからCI/CDの秘密を盗み出す可能性があった。
GitHub Actionは、GitHub Actionsワークフロー用に設計された非常に人気のある自動化ツールです。これは、開発者がプルリクエストやコミットで変更されたファイルを特定し、それらの変更に基づいてアクションを起こすことを可能にするもので、一般的にテスト、ワークフローのトリガー、自動化されたコードのリンティングと検証で使用される。
StepSecurityが最初に報告したように、攻撃者は2025年3月14日午後4時(UTC)に、このツールに悪意のあるコミットを追加し、Runner Workerプロセスから、このアクションを使用しているすべてのプロジェクトのリポジトリにCI/CDシークレットをダンプしました。その結果、もしワークフローのログが一般にアクセス可能であれば、誰でも公開された秘密を読み、盗むことができる。
攻撃者はアクションのコードを修正し、悪意のあるコミットを参照するように複数のバージョンタグを遡及的に更新した。
開発者による最新のアップデートによると、攻撃者はボット(@tj-actions-bot)が使用していたGitHubのパーソナル・アクセストークン(PAT)を侵害し、ボットはツールのリポジトリへの特権的なアクセス権を持っていた。しかし、PATがどのように侵害されたのかは現在のところ不明である。
3月15日午後2時(UTC)、GitHubは侵害されたアクションを削除し、同日午後10時(UTC)には、悪意のあるコードが削除された状態でリポジトリが復元された。
しかし、この侵害は影響を受けたソフトウェア・プロジェクトに永続的な影響を及ぼすため、追跡のためにこのインシデントにCVE ID(CVE-2025-30066)が割り当てられました。
奇妙なことに、悪意のあるコードは、メモリ出力をリモート・サーバーに流出させず、一般にアクセス可能なリポジトリで可視化しただけだった。
「侵害されたアクションは、それを使用しているすべてのCIワークフローに悪意のあるコードを注入し、ワークフローの秘密を含むCIランナーのメモリをダンプしました。
“公開リポジトリでは、秘密はワークフローのログの一部として、二重エンコードされたbase64ペイロードとして難読化されつつも、誰でも見ることができる。”

Source:ウィズ
復元されたtj-actionsリポジトリは本日未明に更新され、影響を受ける可能性のあるユーザーがすべきことについての指示が含まれている:
- 攻撃時間帯(3月14日~15日)に使用されたシークレットをローテーションする。
- ワークフローを見直し、’changed-files’ セクションに予期せぬ出力があることを確認する。
- あなたのワークフローがSHAによって侵害されたコミットを参照している場合、それらを直ちに更新してください。
- タグ付きバージョン(v35、v44.5.1など)を使用していることを確認してください。
将来的に同様の危険にさらされることを防ぐため、GitHub ではすべての GitHub アクションに対して、バージョンタグではなく特定のコミットハッシュに対して ping を送信することを推奨しています。
また、GitHub は許可リスト機能を提供しており、これを活用することで許可されていない GitHub Actions や信頼されていない GitHub Actions をブロックすることができます。
.ia_ad { background-color:#width: 95%; max-width: 800px; margin: 15px auto; border-radius: 8px; border:1px solid #d6ddee; display: flex; align-items: stretch; padding: 0; overflow: hidden; }:0; overflow: hidden; } .ia_lef { flex: 1; max-width: 200px; height: auto; display: flex; align-items: stretch; } .ia_lef a { display: flex; width: 100%; height: 100%; } .ia_lef a img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px 0 0 8px; margin: 0; display: block; } .ia_rig { flex: 2; padding:display: flex; flex-direction: column; justify-content: center; } .ia_rig h2 { font-size: 17px !important; font-weight: 700; color:#line-height: 1.4; font-family:margin: 0 0 14px 0; } .ia_rig p { font-weight: bold; font-size: 14px; margin: 0 0 clamp(6px, 2vw, 14px) 0; } .ia_button { background-color:#border:1px solid #3b59aa; color: black; text-align: center; text-decoration: none; border-radius: 8px; display: inline-block; font-size: 16px; font-weight: bold; cursor: pointer; padding:10px 20px; width: fit-content; } .ia_button a { text-decoration: none; color: inherit; display: block; } @media (max-width: 600px) { .ia_ad { flex-direction: column; align-items: center; text-align: center; } .ia_lef { max-width: 100%; } .ia_lef a img { border-radius: 8px 8px 0 0; } .ia_rig { padding:15px; width: 100%; } .ia_button { width: 100%; } .
攻撃の93%を支えるMITRE ATT&CK©テクニック・トップ10
1,400万件の悪意のあるアクションの分析に基づき、攻撃の93%を支えるMITRE ATT&CKテクニックのトップ10とその防御方法をご覧ください。
Comments