The availability chain assault involving the GitHub Motion “tj-actions/changed-files” began as a highly-targeted assault towards one in every of Coinbase’s open-source initiatives, earlier than evolving into one thing extra widespread in scope.
“The payload was targeted on exploiting the general public CI/CD movement of one in every of their open supply initiatives – agentkit, most likely with the aim of leveraging it for additional compromises,” Palo Alto Networks Unit 42 mentioned in a report. “Nonetheless, the attacker was not ready to make use of Coinbase secrets and techniques or publish packages.”
The incident got here to gentle on March 14, 2025, when it was discovered that “tj-actions/changed-files” was compromised to inject code that leaked delicate secrets and techniques from repositories that ran the workflow. It has been assigned the CVE identifier CVE-2025-30066 (CVSS rating: 8.6).
In response to Endor Labs, 218 GitHub repositories are estimated to have uncovered their secrets and techniques because of the provide chain assault, and a majority of the leaked data features a “few dozen” credentials for DockerHub, npm, and Amazon Net Providers (AWS), in addition to GitHub set up entry tokens.
“The preliminary scale of the provision chain assault sounded scary, contemplating that tens of 1000’s of repositories depend upon the GitHub Motion,” security researcher Henrik Plate mentioned.
“Nonetheless, drilling down into the workflows, their runs and leaked secrets and techniques reveals that the precise influence is smaller than anticipated: ‘Solely’ 218 repositories leaked secrets and techniques, and nearly all of these are short-lived GITHUB_TOKENs, which expire as soon as a workflow run is accomplished.”

Since then, it has emerged that the v1 tag of one other GitHub Motion known as “reviewdog/action-setup,” which “tj-actions/changed-files” depends on as a dependency by way of “tj-actions/eslint-changed-files,” was additionally compromised within the lead as much as the tj-actions incident with an identical payload. The breach of “reviewdog/action-setup” is being tracked as CVE-2025-30154 (CVSS rating: 8.6).
The exploitation of CVE-2025-30154 is claimed to have enabled the unidentified menace actor to acquire a private entry token (PAT) related to “tj-actions/changed-files,” thereby permitting them to change the repository and push the malicious code, in flip impacting each single GitHub repository that relied on the motion.
“When the tj-actions/eslint-changed-files motion was executed, the tj-actions/changed-files CI runner’s secrets and techniques have been leaked, permitting the attackers to steal the credentials used within the runner, together with a Private Entry Token (PAT) belonging to the tj-bot-actions GitHub person account,” Unit 42 researchers Omer Gil, Aviad Hahami, Asi Greenholts, and Yaron Avital mentioned.
It is presently suspected that the attacker managed to one way or the other achieve entry to a token with write entry to the reviewdog group to be able to make the rogue alterations. That mentioned, the style by which this token might have been acquired stays unknown at this stage.
Moreover, the malicious commits to “reviewdog/action-setup” is claimed to have been carried out by first forking the corresponding repository, committing modifications to it, after which making a fork pull request to the unique repository and in the end introducing arbitrary commits – a state of affairs known as a dangling commit.
“The attacker took important measures to hide their tracks utilizing numerous strategies, reminiscent of leveraging dangling commits, creating a number of non permanent GitHub person accounts, and obfuscating their actions in workflow logs (particularly within the preliminary Coinbase assault),” Gil, Senior Analysis Supervisor at Palo Alto Networks, instructed The Hacker Information. “These findings point out that the attacker is very expert and has a deep understanding of CI/CD security threats and assault techniques.”
Unit 42 theorized that the person account behind the fork pull request “iLrmKCu86tjwp8” might have been hidden from public view after the attacker switched from a legit e-mail deal with offered throughout registration to a disposable (or nameless) e-mail in violation of GitHub’s coverage.
This might have prompted all of the interactions and actions carried out by the person to be hid. Nonetheless, when reached for remark, GitHub didn’t verify or deny the speculation, however mentioned it is actively reviewing the state of affairs and taking motion as crucial.
“There’s presently no proof to counsel a compromise of GitHub or its programs. The initiatives highlighted are user-maintained open-source initiatives,” a GitHub spokesperson instructed The Hacker Information.

“GitHub continues to overview and take motion on person experiences associated to repository contents, together with malware and different malicious assaults, in accordance with GitHub’s Acceptable Use Insurance policies. Customers ought to at all times overview GitHub Actions or some other package deal that they’re utilizing of their code earlier than they replace to new variations. That is still true right here as in all different situations of utilizing third social gathering code.”
A deeper seek for GitHub forks of tj-actions/changed-files has led to the invention of two different accounts “2ft2dKo28UazTZ” and “mmvojwip,” each of which have since been deleted from the platform. Each the accounts have additionally been discovered to create forks of Coinbase-related repositories reminiscent of onchainkit, agentkit, and x402.
Additional examination has uncovered that the accounts modified the “changelog.yml” file within the agentkit repository utilizing a fork pull request to level to a malicious model of “tj-actions/changed-files” revealed earlier utilizing the PAT.
The attacker is believed to have obtained a GitHub token with write permissions to the agentkit repository – in flip facilitated by the execution of the tj-actions/changed-files GitHub Actions – in order to make the unauthorized modifications.

One other necessary facet price highlighting is the distinction in payloads utilized in each the instances, indicating makes an attempt on a part of the attacker to remain below the radar.
“The attacker used completely different payloads at completely different levels of the assault. For instance, within the widespread assault, the attacker dumped the runner’s reminiscence and printed secrets and techniques saved as atmosphere variables to the workflow’s log, no matter which workflow was operating,” Gil mentioned.
“Nonetheless, when focusing on Coinbase, the attacker particularly fetched the GITHUB_TOKEN and ensured that the payload would solely execute if the repository belonged to Coinbase.”
It is presently not recognized what the tip objective of the marketing campaign was, it is “strongly” suspected that the intent was monetary achieve, doubtless trying to conduct cryptocurrency theft, given the hyper-specific focusing on of Coinbase, Gil identified. As of March 19, 2025, the cryptocurrency trade has remediated the assault.
It is also not clear what prompted the attacker to change gears, turning what was an initially focused assault changed into a large-scale and fewer stealthy marketing campaign.
“One speculation is that after realizing they might not leverage their token to poison the Coinbase repository — and upon studying that Coinbase had detected and mitigated the assault — the attacker feared dropping entry to the tj-actions/changed-files motion,” Gil mentioned.
“Since compromising this motion may present entry to many different initiatives, they might have determined to behave rapidly. This might clarify why they launched the widespread assault simply 20 minutes after Coinbase mitigated the publicity on their finish regardless of the elevated danger of detection.”