GitHub Action tj-actions/changed-files was compromised in supply chain attack
Vulnerabilities mentionedAll →
| CVE | Vulnerability | CVSS | EPSS | Flags | Affected | Exposure | Published |
|---|---|---|---|---|---|---|---|
| CVE-2025-30066 | Supply Chain Compromise of tj-actions/changed-files GitHub Action Exposes CI/CD Secrets CVE-2025-30066 is not a traditional code bug but a supply chain compromise: on 2025-03-14 and 2025-03-15, a threat actor modified the code behind every published tag (v1 through v45.0.7) of the widely used tj-actions/changed-files GitHub Action to point at commit 0e58ed8, which contained malicious 'updateFeatures' code. The flaw is triggered whenever a GitHub Actions workflow invokes any of these affected tags during the compromise window; the embedded code dumps the runner's environment variables into the workflow logs. Anyone able to read the actions logs — including public logs on public repositories — can discover repository secrets such as GitHub tokens, API keys, and cloud credentials, enabling account takeover and lateral movement. Public reporting indicates roughly 23,000 repositories/organizations were affected, with Coinbase initially targeted and 218 of its repositories' CI/CD secrets exposed; the attack was traced back to a compromised GitHub token. Exploitation is confirmed in the wild: CISA added the flaw to its Known Exploited Vulnerabilities catalog on 2025-03-18, and both GitGuardian and StepSecurity published detection and incident analyses. Do: Update workflows from tj-actions/changed-files to v46 or later, or better, pin the action to a verified commit SHA rather than a mutable tag. Review all workflow run logs generated between 2025-03-14 and 2025-03-15 for dumped environment variables and rotate every credential that could have been exposed (GitHub PATs, cloud keys, deploy tokens), checking downstream systems and logs for abuse of those secrets. | 8.6 | 70% | KEV PoC ×2 |
| large≈23,000+ repositories and their organizations (public incident reporting counted over 23,000 affected repositories) |
Full article522 words · extracted from securityaffairs.com · click to collapse

The GitHub Action tj-actions/changed-files was compromised, enabling attackers to extract secrets from repositories using the CI/CD workflow.
Researchers reported that threat actors compromised the GitHub Action tj-actions/changed-files, allowing the leak of secrets from repositories using the continuous integration and continuous delivery CI/CD workflow.
The tj-actions/changed-files GitHub Action is used in over 23,000 repositories, it automates workflows by detecting file changes in commits or pull requests, aiding testing, and automation.
“The tj-actions/changed-files GitHub Action, which is currently used in over 23,000 repositories, has been compromised. In this attack, the attackers modified the action’s code and retroactively updated multiple version tags to reference the malicious commit. The compromised Action prints CI/CD secrets in GitHub Actions build logs. If the workflow logs are publicly accessible (such as in public repositories), anyone could potentially read these logs and obtain exposed secrets.” states StepSecurity. “There is no evidence that the leaked secrets were exfiltrated to any remote network destination.”
StepSecurity researchers discovered a supply chain attack on March 14, 2025, where attackers modified the tool to leak CI/CD secrets from workflow logs.
“StepSecurity Harden-Runner detected this issue through anomaly detection when an unexpected endpoint appeared in the network traffic. Based on our analysis, the incident started around 9:00 AM March 14th, 2025 Pacific Time (PT) / 4:00 PM March 14th, 2025 UTC.” continues StepSecurity. “Update March 14, 2025 11:00 PM UTC: Most versions of tj-actions/changed-files are compromised.”
On March 15, the company detected multiple public repositories that had leaked secrets in build logs, allowing anyone to steal these secrets.
The CVE-2025-30066 (CVSS score: 8.6) was assigned to this supply chain attack.
The researchers noticed that compromised GitHub Action executes a malicious Python script that extracts CI/CD secrets from the Runner Worker process. Attackers retroactively altered multiple release tags to point to the same malicious commit, injecting an exploit that dumps memory and extracts sensitive data. The commit, falsely attributed to the renovate bot, downloads and executes a script from an external source, using memory forensics to locate and extract secrets.
Wiz Threat Research confirmed the secret-dumping script’s execution and identified dozens of public repositories exposing sensitive data, notifying affected parties.

“The compromised action injected malicious code into any CI workflows using it, dumping the CI runner memory containing the workflow secrets. On public repositories, the secrets would then be visible to everyone as part of the workflow logs, though obfuscated as a double-encoded base64 payload.” concludes Wiz. “As of now, no external exfiltration of secrets to an attacker-controlled server were observed; secrets were only observable within the affected repositories themselves.”
GitHub promptly removed the tj-actions/changed-files Action preventing GitHub Actions workflows from using this Action. Users should update to GitHub Action version 46.0.1 and review workflows from March 14-15 for unexpected output in the changed-files section.
“The Personal access token affected was stored as a GitHub action secret which has since been revoked,” states the project maintainers. “Going forward no PAT would be used for all projects in the tj-actions organization to prevent any risk of reoccurrence.”
Follow me on Twitter: @securityaffairs and Facebook and Mastodon
(SecurityAffairs – hacking, malware)
Text extracted automatically; images, tables and formatting may be missing. Original: https://securityaffairs.com/175547/hacking/github-action-tj-actions-changed-files-was-compromised.html