GHAPPIER Supply Chain Attack Compromises 65 GitHub Repositories and Poisons npm Package
GHAPPIER supply chain campaign compromised 65 GitHub repositories and pushed a malicious four-stage npm loader via compromised maintainer trusted publishing.
CloudSEK tracked the GHAPPIER operation, which reached 65 GitHub repositories across 22 accounts; on September 9 an intruder used the @dforge-core/dforge-mcp maintainer account for 105 minutes to publish version 0.2.21 containing a four-stage remote code loader. The poisoned release stayed live 35 minutes, carried valid npm provenance via GitHub Actions OIDC trusted publishing, and its final stage self-deleted to evade disk searches, with stages still responding five days later. A second payload family matched the PolinRider campaign, which harvests cached Git credentials and reads C2 configuration from an Ethereum blockchain transaction. No downstream organizational compromise was confirmed; users should pin version 0.2.22 and audit for 0.2.21.
- 65 GitHub repositories, 73 files, and 22 accounts affected by GHAPPIER
- Malicious npm package 0.2.21 distributed four-stage loader with valid provenance attestation
- Final payload self-deleted but stages still responded five days later
- Linked PolinRider payload uses Ethereum blockchain transaction for C2
- ATT&CK
- T1195.001 Compromise Software Dependencies and Development ToolsT1078 Valid AccountsT1070.004 File Deletion
- Organizations
- CloudSEKPolinRiderGitHubnpm
From the original article
3 min read at cybersecuritynews.com
A newly uncovered software supply chain attack has shown how quickly a trusted developer account can become a delivery route for malware. The operation, tracked as GHAPPIER, reached 65 GitHub repositories, infecting 73 files across 22 accounts. It involved a legitimate npm package that distributed a malicious loader to users.
By Tushar Subhra Dutta · cybersecuritynews.com
A short excerpt; the article and its images belong to the publisher. Summary, key facts and assessment above are AI-written from the article and can be wrong.