CVE-2025-30066: tj-actions/changed-files GitHub Action Embedded Malicious Code Vulnerability
tj-actions · changed-files GitHub Action · NVD published 2025-03-15 · posted 2025-03-18 · last modified 2026-09-24
What it is
tj-actions changed-files before 46 allows remote attackers to discover secrets by reading actions logs. (The tags v1 through v45.0.7 were affected on 2025-03-14 and 2025-03-15 because they were modified by a threat actor to point at commit 0e58ed8, which contained malicious updateFeatures code.)
| Weakness | CWE-506 |
|---|---|
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N (source: [email protected]) |
| CISA due date | 2025-04-08 (for US federal agencies under BOD; a good deadline for everyone) |
| ATT&CK tactics | Initial Access |
Exploitation evidence
First exploit evidence seen: 2025-03-18 (earliest date across the sources below).
Exploited in the wild
- CISA KEV: listed since 2025-03-18. Source
Public exploit code
GitHub proof-of-concept repositories below quality bar
2 public repositories from 2 accounts, first seen 2025-03-18.
Verify before running: public PoCs can be malicious. Read the code and only run it in an isolated lab. A PoC means exploit code is public, not that this CVE is exploited in the wild.
Sources: CISA KEV · nomi-sec/PoC-in-GitHub.
Defend the Chain
The attack chain for CVE-2025-30066 laid across the MITRE ATT&CK Enterprise tactics. Solid cards come from the MITRE CTID KEV mappings; dashed cards are inferred by CVERadar from the CWE or description. Correct defences are real ATT&CK mitigations for that technique.
Pick a red technique card on the board, then choose the defence that stops it.
Defend against T1190 Exploit Public-Facing Application Inferred
Inferred from description keywords (network-reachable flaw)
How to fix it
CISA required action
Apply mitigations as set forth in the CISA instructions linked below. Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable. (source: CISA KEV)
Fixed versions
- tj-actions changed-files: versions up to and including 45.0.7 are affected; check the vendor advisory for the fixed release.
Derived from the NVD CPE configuration (versionEndExcluding / versionEndIncluding). Always confirm with the vendor advisory.
Vendor advisories and patches
- https://www.cisa.gov/news-events/alerts/2025/03/18/supply-chain-compromise-third-party-tj-actionschanged-files-cve-2025-30066-and-reviewdogaction (CISA KEV notes)
- https://github.com/tj-actions/changed-files/blob/45fb12d7a8bedb4da42342e52fe054c6c2c3fd73/README.md?plain=1#L20-L28 (CISA KEV notes)
- https://sysdig.com/blog/detecting-and-mitigating-the-tj-actions-changed-files-supply-chain-attack-cve-2025-30066/ (Mitigation, Third Party Advisory)
- https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised (Exploit, Mitigation, Third Party Advisory)
MITRE ATT&CK mitigations for this chain
- M1048 Application Isolation and Sandboxing (for T1190) : Application isolation will limit what other processes and system features the exploited target can access.
- M1037 Filter Network Traffic (for T1190) : Restrict outbound network traffic from public-facing servers to prevent unauthorized connections from initiating communications with attacker-controlled infrastructure. While this may not prevent the initial exploitation, it limits the attacker's ability to verify and control the compromised server post-exploit, reduci
- M1030 Network Segmentation (for T1190) : Segment externally facing servers and services from the rest of the network with a DMZ or on separate hosting infrastructure.
- M1016 Vulnerability Scanning (for T1190) : Regularly scan externally facing systems for vulnerabilities and establish procedures to rapidly patch systems when critical vulnerabilities are discovered through scanning and through public disclosure.
- M1026 Privileged Account Management (for T1190) : Use least privilege for service accounts will limit what permissions the exploited process gets on the rest of the system.
- M1050 Exploit Protection (for T1190) : Web Application Firewalls may be used to limit exposure of applications to prevent exploit traffic from reaching the application.
- M1035 Limit Access to Resource Over Network (for T1190) : Ensure that all publicly exposed services are actually intended to be so, and restrict access to any that should only be available internally.
- M1051 Update Software (for T1190) : Update software regularly by employing patch management for externally exposed applications.
Detection Generic guidance
- Initial Access: Alert on unusual requests to the affected service (odd paths, oversized payloads, exploit strings) in WAF, reverse-proxy and application logs.
Response checklist Generic guidance
- Inventory: find every instance of the affected product and version (include internet-facing and forgotten ones).
- Patch or mitigate per the vendor advisory; if you cannot patch, remove internet exposure or apply the vendor workaround.
- Assume compromise if the system was exposed before patching: hunt for the indicators in the advisory and review logs back to the disclosure date.
- Rotate credentials and secrets stored on or used by the affected system if compromise cannot be ruled out.
Sources
- NVD: CVE-2025-30066
- CVE.org record
- CISA Known Exploited Vulnerabilities catalog
- FIRST EPSS (2026-10-24)
- https://blog.gitguardian.com/compromised-tj-actions/ (Exploit, Third Party Advisory)
- https://github.com/chains-project/maven-lockfile/pull/1111 (Issue Tracking)
- https://github.com/espressif/arduino-esp32/issues/11127 (Issue Tracking)
- https://github.com/github/docs/blob/962a1c8dccb8c0f66548b324e5b921b5e4fbc3d6/content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md?plain=1#L191-L193 (Product)
- https://github.com/modal-labs/modal-examples/issues/1100 (Issue Tracking)
- https://github.com/rackerlabs/genestack/pull/903 (Issue Tracking)
- https://github.com/tj-actions/changed-files/issues/2463 (Issue Tracking)
- https://github.com/tj-actions/changed-files/issues/2464 (Issue Tracking)
- https://github.com/tj-actions/changed-files/issues/2477 (Issue Tracking)
- https://news.ycombinator.com/item?id=43367987 (Issue Tracking, Third Party Advisory)
- https://news.ycombinator.com/item?id=43368870 (Issue Tracking, Third Party Advisory)
- https://semgrep.dev/blog/2025/popular-github-action-tj-actionschanged-files-is-compromised/ (Third Party Advisory)
- https://web.archive.org/web/20250315060250/https://github.com/tj-actions/changed-files/issues/2463 (Issue Tracking)
- https://www.stream.security/post/github-action-supply-chain-attack-exposes-secrets-what-you-need-to-know-and-how-to-respond (Third Party Advisory)
- https://www.sweet.security/blog/cve-2025-30066-tj-actions-supply-chain-attack (Third Party Advisory)
- https://www.wiz.io/blog/github-action-tj-actions-changed-files-supply-chain-attack-cve-2025-30066 (Third Party Advisory)
- https://www.cisa.gov/news-events/alerts/2025/03/18/supply-chain-compromise-third-party-github-action-cve-2025-30066 (Third Party Advisory, US Government Resource)
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-30066 (US Government Resource)