Threat hunters at Radware have uncovered a suspected coordinated supply chain campaign that targeted 61 public GitHub repositories, including popular open source projects like Google LangExtract, Trivy, Brave browser, and MLflow, in what they suspect is a campaign to execute commands in CI/CD environments and steal credentials and access tokens.
The attacks were identified by Radware researchers Gabi Nakibly and Zvika Babo, who told The Register they suspect a single individual is behind the campaign. The attacker used 74 different GitHub accounts, many of which had legitimate development histories, suggesting they were likely compromised. Most of the 83 malicious items were published during a 43-minute time span on September 1, with the remaining six occurring within the next two minutes.
The attack chain, which the researchers describe as novel and stealthy, begins with the attacker publishing an issue, pull request, or comment containing malicious commands hidden in HTML comments. This content is not visible on the rendered page. A GitHub event, such as a pull request or issue, can automatically trigger a workflow if the repository is configured to respond to that event, allowing the attacker to be largely hands-off.
“The workflow automatically is triggered within a second, and if the workflow is indeed vulnerable, then the attack is executed successfully,” Nakibly said. The workflow incorporates attacker-controlled content directly into shell source code, and the shell executes the hidden malicious command, which collects environment variables and attempts to exfiltrate them to an attacker-controlled server.
While the researchers found two cases with evidence that the malicious command ran inside the automation environment, they cannot definitively say whether the attacker obtained repository write permissions, modified source code, or compromised downstream software. “The big picture is that the attackers are trying to find every possible way to get inside the repos to get credentials,” Nakibly said.
Affected repositories span AI frameworks, security tools, development infrastructure, databases, and other widely used open source projects, including agno-agi/agno, ToolJet/ToolJet, google/langextract, aquasecurity/trivy, CopilotKit/CopilotKit, and podman-container-tools/podman. “These projects are used by thousands of organizations,” Babo said.
The researchers disclosed their findings to the projects’ maintainers, and most repositories were closed or fixed, but they cannot confirm all were. They recommend applying least-privilege access to CI/CD workflows and separating as much as possible workflows triggered by external events from jobs with elevated permissions. “Developers should treat external content as untrusted, and also limit the secrets and environment variables that are available to the workflow,” Babo said.
Analysis
Why This Matters
- Open source projects are widely used, and a successful supply chain attack could affect thousands of organizations that depend on them.
- The attack method exploits GitHub's event-triggered workflows, a common feature, making many repos potentially vulnerable.
- The campaign highlights the need for developers to secure CI/CD pipelines against malicious external content.
Background
GitHub is a popular platform for hosting and collaborating on open source software. CI/CD workflows automate testing and deployment, and they can be triggered by events like pull requests or issues. If a workflow incorporates content from these events into shell code without sanitization, it can be exploited to run arbitrary commands. This attack follows earlier supply chain attacks against open source security and dev tools, as attackers seek new ways to steal credentials and secrets.
Key Perspectives
- Radware researchers (Gabi Nakibly, Zvika Babo): Suspect a single coordinated attacker using compromised GitHub accounts to run a stealthy supply chain campaign aimed at stealing credentials and access tokens.
- Radware researchers: Recommend treating external content as untrusted and limiting secrets and environment variables in workflows, as well as applying least-privilege access.
What to Watch
- Whether any downstream software was compromised as a result of the attacks.
- If GitHub or affected maintainers implement measures to prevent similar attacks.
- Whether the attacker strikes again using new accounts or techniques.
Checked
12 claims in this story checked against 1 source: 12 supported.
Show each claim
- SupportedAttackers targeted 61 public GitHub repositories in a suspected supply-chain campaign.www.theregister.com - Articles: “Researchers identified at least 83 attacks against 61 public GitHub repositories”
- SupportedResearchers suspect the coordinated campaign aimed to execute commands in CI/CD environments and steal credentials and access tokens.www.theregister.com - Articles: “in what they suspect is a coordinated campaign to execute commands in CI/CD environments and steal credentials and access tokens.”
- SupportedThe targeted repositories included Google LangExtract, Trivy, Brave browser and MLflow.www.theregister.com - Articles: “including popular open source projects such as Google LangExtract, Trivy, Brave browser, and MLflow”
- SupportedThe campaign involved 83 malicious items; 77 were published in 43 minutes on September 1, and the other six within the next two minutes.www.theregister.com - Articles: “Most (77) of the malicious items were published during a 43-minute time span on September 1, with the remaining six occurring within the next two minutes.”
- SupportedThe researchers suspect one individual was behind the campaign, using 74 GitHub accounts, many with legitimate histories and likely compromised.www.theregister.com - Articles: “Nakibly and fellow Radware researcher Zvika Babo say they suspect a single individual is behind this supply chain campaign. This attacker used 74 different GitHub accounts, many of which had legitimate development histories, meaning they were likely compromised.”
- SupportedThe attack chain used malicious commands hidden in HTML comments in issues, pull requests or comments, which are not visible on the rendered page.www.theregister.com - Articles: “First, the attacker publishes an issue, pull request, or comment containing malicious commands hidden in HTML comments. This ensures the content is not visible in the rendered page.”
- SupportedA GitHub event can automatically trigger a workflow if the repository is configured to respond to it, potentially leaving the attacker hands-off.www.theregister.com - Articles: “a GitHub event – like a pull request or issue – can automatically trigger a workflow if the repository is configured to respond to that event, meaning the attacker can be pretty hands-off at this point.”
- SupportedNakibly said, “The workflow automatically is triggered within a second, and if the workflow is indeed vulnerable, then the attack is executed successfully.”www.theregister.com - Articles: ““The workflow automatically is triggered within a second, and if the workflow is indeed vulnerable, then the attack is executed successfully,” Nakibly said.”
- SupportedThe workflow put attacker-controlled content into shell source code, and the shell ran the hidden command, which collected environment variables and tried to exfiltrate them.www.theregister.com - Articles: “The workflow incorporates attacker-controlled content directly into shell source code, and the shell executes the hidden, malicious command, which hoovers up environment variables and attempts to exfiltrate those to an attacker-controlled server.”
- SupportedResearchers found two cases with evidence the command ran in an automation environment, but could not confirm whether the attacker obtained write permissions, modified source code or compromised downstream software.www.theregister.com - Articles: “they found two cases containing evidence that the malicious command ran inside the automation environment, they can’t definitively say whether the attacker successfully obtained repository write permissions, modified source code, or compromised downstream software.”
- SupportedNakibly said, “The big picture is that the attackers are trying to find every possible way to get inside the repos to get credentials.”www.theregister.com - Articles: ““The big picture is that the attackers are trying to find every possible way to get inside the repos to get credentials,” Nakibly said.”
- SupportedThe affected projects span AI frameworks, security tools, development infrastructure, databases and other open-source software, and include agno-agi/agno, ToolJet/ToolJet, google/langextract, aquasecurity/trivy, CopilotKit/CopilotKit and podman-container-tools/podman.www.theregister.com - Articles: “The repos span AI frameworks, security tools, development infrastructure, databases, and other widely used open source software projects. The Radware report lists agno-agi/agno (42.7K stars), ToolJet/ToolJet (41.1K), google/langextract (38.9K), aquasecurity/trivy (38.4K), CopilotKit/CopilotKit (38K), and podman-container-tools/podman (33K)”