Wake-up Call for GitHub Actions!

A zero-day vulnerability in tj-actions/changed-files

Blog Wake-up Call for GitHub Actions!

| 4 min read

Contact us

A critical supply chain security incident recently shook the open-source community, targeting the widely used tj-actions/changed-files GitHub Action. With over 23,000 repositories relying on this tool — designed to list modified files in commits and pull requests — the compromise, now tracked as CVE-2025-30066, serves as a stark reminder of the potential risks inherent in relying on third-party actions and underscores the urgent need for stringent security practices within CI/CD pipelines.

What happened?

On March 14th, a significant security breach surfaced within the GitHub Actions ecosystem, centered on the widely used tj-actions/changed-files Action. This Action, essential for identifying modified files in CI/CD workflows, was compromised by the injection of malicious code. For context, it's important to know that GitHub Actions are reusable, often open-source, components that developers can reference in their CI/CD workflows. The tj-actions/changed-files Action, like many others, processes environment variables which can contain sensitive secrets. Therefore, this compromise exposed secrets, API keys, and other credentials in workflow run logs.

StepSecurity researchers apparently first noticed an anomaly in this environment when they observed an unexpected external endpoint during a workflow execution. Their prompt reporting was crucial in alerting the community. The attack involved adversaries modifying the Action's code and retroactively updating numerous version tags to point to a malicious commit. This meant that nearly all historical releases of tj-actions/changed-files were compromised. The injected code executed a Python script to extract CI/CD secrets from the runner's memory and then print them directly into the workflow logs. Notably, no external exfiltration to attacker-controlled servers was observed; the secrets were only visible within the affected repositories' logs. This poses a significant risk to public repositories, where these logs are accessible to anyone with read access.

Further investigation revealed that the compromise of tj-actions/changed-files was potentially linked to an attack on the reviewdog/actions-setup@v1 Action, with vulnerability assigned CVE-2025-30154, indicating a broader breach within the GitHub Actions ecosystem. All versions of tj-actions/changed-files were affected by March 15th, as the attackers had successfully manipulated existing version tags. The root cause was traced to a compromised GitHub Personal Access Token (PAT) belonging to the @tj-actions-bot account. The attackers used this PAT to push the malicious commit and impersonated the "renovate[bot]" user account to make it look like it was coming from a legitimate user. This success was facilitated by a lack of security controls in the tj-actions/changed-files repository, such as requiring signed commits and implementing branch and tag protection rules.

In response, StepSecurity released a secure drop-in replacement, step-security/changed-files, to aid in recovery. In addition, the GitHub gist hosting the malicious script was taken down, and the compromised repository was temporarily removed from the Actions marketplace by GitHub. The maintainers of tj-actions/changed-files also acted swiftly, removing the malicious code, releasing patched versions, and restoring the repository to a safe state, reverting all version tags to clean code.

While future exploitation has been mitigated, the risk of cached actions and already leaked secrets remains. Therefore, immediate remediation is crucial, especially for public repositories where exposed secrets are widely accessible. Security researchers continue to analyze the incident to understand its implications fully.

Get started with Fluid Attacks' Vulnerability Management solution right now

Immediate and short-term action steps

  • Conduct a comprehensive GitHub audit: Identify all repositories and organizations using GitHub Actions, prioritizing those using tj-actions/changed-files. Employ the provided GitHub query, enter the "Actions" section and check for GitHub Actions including the affected component to expedite this process.

  • Scrutinize workflow logs: Thoroughly examine past workflow runs, especially in public repositories, for double-encoded Base64 strings, indicative of secret exposure.

  • Implement access restrictions and secret rotation: Temporarily restrict access to potentially compromised repositories and immediately rotate all potentially exposed secrets, adhering to your organization's incident response plan.

  • Replace compromised Actions: You can also audit all workflow files and replace tj-actions/changed-files with a secure alternative, such as step-security/changed-files, removing all references from every branch.

  • Pin Actions to specific commits: Modify workflow files to pin all GitHub Actions to specific commit SHAs, ensuring the use of trusted versions and mitigating future risks.

  • Establish robust monitoring: Implement continuous monitoring for anomalous CI/CD pipeline activity, including unexpected external endpoints and unusual log patterns.

  • Integrate SAST and SCA tools: Utilize static application security testing (SAST) and software composition analysis (SCA) tools to identify and address vulnerabilities in code and dependencies proactively.

  • Perform regular dependency reviews: Establish a process for regularly reviewing and updating all dependencies (your entire SBOM) to minimize risks.

Conclusion

The compromise of tj-actions/changed-files serves as a stark reminder of the inherent vulnerabilities within the open-source ecosystem, particularly concerning supply chain security. This incident underscores the necessity for rigorous security practices, including thorough assessments, proactive monitoring, and meticulous dependency management. By remaining vigilant and adopting robust security measures, organizations can significantly mitigate the risks associated with such attacks. The trust placed in widely used components must be continually validated to ensure the integrity of CI/CD pipelines.

To effectively navigate the complexities of supply chain security, organizations must prioritize proactive vulnerability detection and response. At Fluid Attacks, we understand the critical nature of these threats and offer specialized solutions to help identify and remediate vulnerabilities, including those stemming from incidents like the tj-actions/changed-files compromise. In fact, we can help you detect and respond to this issue and other vulnerabilities related to supply chain attacks through GitHub Actions. If your organization requires expert support, please get in touch with us. We are committed to empowering you with the tools and expertise to safeguard your development processes.

Subscribe to our blog

Sign up for Fluid Attacks' weekly newsletter.

Recommended blog posts

You might be interested in the following related posts.

Photo by David Clode on Unsplash

For a better focus on vulnerabilities to be prioritized

Photo by Steve Smith on Unsplash

F-scores and accuracy SLA at Fluid Attacks

Photo by Ümit Yıldırım on Unsplash

10 recent critical security breaches

Photo by Frankie Mish on Unsplash

Towards enhanced vulnerability prioritization

Photo by Jr Korpa on Unsplash

How we enhance our tests by standardizing them

Photo by Logan Weaver on Unsplash

Introduction to cybersecurity in the aviation sector

Photo by Maxim Hopman on Unsplash

Why measure cybersecurity risk with our CVSSF metric?

Start your 21-day free trial

Discover the benefits of our Continuous Hacking solution, which hundreds of organizations are already enjoying.

Start your 21-day free trial
Fluid Logo Footer

Testing software security for over 20 years

Fluid Attacks tests applications and other systems, covering all software development stages. Our team assists clients in quickly identifying and managing vulnerabilities to reduce the risk of incidents and deploy secure technology.

Copyright © 0 Fluid Attacks. We hack your software. All rights reserved.