A cascading supply chain attack that began with the compromise of the “reviewdog/action-setup@v1” GitHub Action is believed to have led to the recent breach of “tj-actions/changed-files” that leaked CI/CD secrets.
Last week, a supply chain attack on the tj-actions/changed-files GitHub Action caused malicious code to write CI/CD secrets to the workflow logs for 23,000 repositories. If those logs had been public, then the attacker would have been able to steal the secrets.
The tj-actions developers cannot pinpoint exactly how the attackers compromised a GitHub personal access token (PAT) used by a bot to perform malicious code changes.
Today, Wiz researchers think they may have found the answer in the form of cascading supply chain attacks that started with another GitHub action named ‘reviewdog/action-setup.’
The cybersecurity firm reports that the attackers first compromised the v1 tag for the reviewdog/action-setup GitHub action and injected similar code to dump CI/CD secrets to log files.
As tj-actions/eslint-changed-files utilizes the reviewdog/action-setup action, it is believed that the compromised action was used to dump tj-action’s personal access token and steal it.
“We believe that it is likely the compromise of reviewdog/action-setup is the root cause of the compromise of the tj-actions-bot PAT,” explains Wiz in the report.
“tj-actions/eslint-changed-files uses reviewdog/action-setup@v1, and the tj-actions/changed-files repository runs this tj-actions/eslint-changed-files Action with a Personal Access Token.”
“The reviewdog Action was compromised during roughly the same time window as the tj-actions PAT compromise.”
The attackers inserted a base64-encoded payload into install.sh, causing secrets from affected CI workflows to be exposed.
As in the case of tj-actions, the exposed secrets would be visible on public repositories as part of the workflow logs.
.jpg)
Source: Wiz
Apart from the reviewdog/action-setup@v1 tag that has been confirmed as breached, the following actions may also be impacted:
- reviewdog/action-shellcheck
- reviewdog/action-composite-template
- reviewdog/action-staticcheck
- reviewdog/action-ast-grep
- reviewdog/action-typos
Wiz explains that the security breach at Reviewdog was remediated incidentally, but they informed the team and GitHub of their findings to prevent reoccurrence.
Though the exact method of the breach hasn’t been determined, Wiz comments that review dog maintains a large contributors base and accepts new members via automated invites, which naturally elevates the risk.
Notably, if the action remained compromised, a repeat attack on tj-actions/changed-files with a successful outcome would be practically possible, potentially exposing the just rotated CI/CD secrets.
Recommendations
Wiz suggests that potentially impacted projects run this GitHub query to check for references to reviewdog/action-setup@v1 in repositories.
If double-encoded base64 payloads are found in workflow logs, this should be taken as a confirmation their secrets were leaked.
Developers should immediately remove all references to affected actions across branches, delete workflow logs, and rotate any potentially exposed secrets.
To prevent similar compromises in the future, pin GitHub Actions to commit hashes instead of version tags and use GitHub’s allow-listing feature to restrict unauthorized actions.
Those supply chain attacks and leaked CI/CD secrets are bound to have a lasting effect on impacted projects, so quick action is required to mitigate the risks.
Update 3/19: Reviewdog team published a security advisory aknowledging the compromise and providing instructions for potentially impacted users.
.ia_ad {
background-color: #f0f6ff;
width: 95%;
max-width: 800px;
margin: 15px auto;
border-radius: 8px;
border: 1px solid #d6ddee;
display: flex;
align-items: stretch;
padding: 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: 10px;
display: flex;
flex-direction: column;
justify-content: center;
}
.ia_rig h2 {
font-size: 17px !important;
font-weight: 700;
color: #333;
line-height: 1.4;
font-family: Georgia, “Times New Roman”, Times, serif;
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: #FFF;
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%;
}
}
Top 10 MITRE ATT&CK© Techniques Behind 93% of Attacks
Based on an analysis of 14M malicious actions, discover the top 10 MITRE ATT&CK techniques behind 93% of attacks and how to defend against them.
The post GitHub Actionのハッキングがサプライチェーン攻撃の連鎖につながった可能性が高い、 reviewdog/action-setup@v1」GitHub Actionの侵害から始まった連鎖的なサプライチェーン攻撃は、CI/CDの秘密を流出させた「tj-actions/changed-files」の最近の侵害につながったと考えられている。 先週、tj-actions/changed-filesGitHubActionに対するサプライチェーン攻撃によって、悪意のあるコードが23,000のリポジトリのワークフローログにCI/CDの秘密を書き込んだ。もしこれらのログが公開されていたら、攻撃者は秘密を盗むことができただろう。 tj-actionsの開発者は、攻撃者が悪意のあるコード変更を実行するためにボットが使用するGitHubパーソナル・アクセストークン(PAT)を侵害した方法を正確に特定することはできません。 今日、Wizの研究者は、’reviewdog/action-setup’という名前の別のGitHubアクションから始まった連鎖的なサプライチェーン攻撃の形で答えを見つけたかもしれないと考えている。 サイバーセキュリティ会社の報告によると、攻撃者はまずreviewdog/action-setup GitHubアクションのv1タグを侵害し、CI/CDの秘密をログファイルにダンプするために同様のコードを注入した。 tj-actions/eslint-changed-filesはreviewdog/action-setupアクションを利用しているため、侵害されたアクションはtj-actionの個人アクセストークンをダンプし、それを盗むために使用されたと考えられている。 “我々は、reviewdog/action-setupの侵害がtj-actions-bot PATの侵害の根本原因である可能性が高いと信じている。 “tj-actions/eslint-changed-filesはreviewdog/action-setup@v1を使用しており、tj-actions/changed-filesリポジトリはこのtj-actions/eslint-changed-files ActionをPersonal Access Tokenで実行している。” “reviewdogアクションは、tj-actions PATの侵害とほぼ同じ時間帯に侵害された。” 攻撃者は、install.shにbase64エンコードされたペイロードを挿入し、影響を受けたCIワークフローからのシークレットを暴露させた。 tj-actions の場合と同様に、公開されたシークレットは、ワークフローのログの一部として公開リポジトリで見ることができる。 サプライチェーン攻撃の概要Source:ウィズ 侵害が確認されたreviewdog/action-setup@v1タグとは別に、以下のアクションも影響を受ける可能性がある: reviewdog/action-shellcheck reviewdog/action-composite-template reviewdog/action-staticcheck reviewdog/action-ast-grep reviewdog/action-typos Wiz氏は、Reviewdogのセキュリティ侵害は偶発的に修復されたが、再発防止のためにチームとGitHubに報告したと説明している。 侵入の正確な手口は特定されていないものの、Reviewdogは大規模な投稿者ベースを維持し、自動招待によって新しいメンバーを受け入れているため、当然リスクは高くなるとWiz氏はコメントしている。 注目すべきは、もしアクションが侵害されたままであれば、tj-actions/changed-filesへの攻撃を繰り返し、成功させることは現実的に可能であり、ローテーションされたばかりのCI/CDの秘密が暴露される可能性があるということだ。 推奨事項 Wizは、影響を受ける可能性のあるプロジェクトに対して、このGitHubクエリを実行して、リポジトリにreviewdog/action-setup@v1への参照がないかチェックすることを提案する。 ワークフローのログに二重にエンコードされたbase64のペイロードが見つかった場合、これはそのシークレットが流出したことの確認とみなされます。 開発者は直ちに、ブランチ全体にわたって影響を受けるアクションへの参照をすべて削除し、ワークフローのログを削除し、潜在的に暴露された秘密をローテーションすべきである。 今後同様の漏洩を防ぐには、GitHubのアクションをバージョンタグではなくコミットハッシュに固定し、GitHubの許可リスト機能を使って許可されていないアクションを制限すること。 これらのサプライチェーン攻撃や流出したCI/CDの秘密は、影響を受けたプロジェクトに永続的な影響を与えるに違いないので、リスクを軽減するために迅速な対応が必要だ。 3/19更新: Reviewdogチームはセキュリティ勧告を発表し、侵害を認め、影響を受ける可能性のあるユーザーへの指示を提供した。 .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とその防御方法をご覧ください。 レッドレポート2025を読む first appeared on PRSOL:CC.