An unidentified threat actor breached one of application security vendor Xygeni's GitHub Actions this month via tag poisoning.
Xygeni, which sells a number of AI-powered AppSec products, said in a March 10 security incident report that it "detected suspicious activity affecting the repository used to publish the xygeni/xygeni-action GitHub Action."
The attacker used pull requests in an effort to introduce malicious code (a compact command-and-control implant) into the repository, though Xygeni said the attempts were blocked via existing branch detection rules. The threat actor then pivoted, exploiting "a separate vector by moving the mutable v5 tag to reference a malicious commit created during the pull request attempts."
"Workflows referencing xygeni/xygeni-action@v5 could therefore retrieve the compromised code without any visible change to their workflow definitions," Xygeni said in its disclosure. The attacker gained access via compromised credentials associated with a maintainer token and a GitHub app installed on the relevant repository.
Related:Microsoft Patches 83 CVEs in March Update
Xygeni identified the follow-on activity on March 9 following community reports, and the tag was removed as part of ongoing incident response procedures. According to the vendor, no malicious code was merged into the repository's main branch, there is no evidence of compromise to Xygeni's platform or customer data, and the compromised tag has been permanently removed.
Xygeni Attack Root Cause and Remediation
Xygeni's post was notably detailed, featuring a timeline of the attack as well as root cause analysis and remediation recommendations.
The company concluded the root cause of breach was the compromise of a GitHub App private key that had been installed on the repository and had unnecessarily broad permissions. The attacker used a maintainer's personal access token (PAT) in tandem with the GitHub App's credentials: one to create pull requests, the other to approve them (as neither could bypass repository protections on their own).
Going forward, Xygeni committed to enforcing release immutability across repositories, hardening repository permissions and contributor access, making cryptographically signed commits mandatory for maintainers, and restricting write access to a limited set of maintainers and administrators.
... continue reading