Intercom Node SDK hit by Mini Shai-Hulud
The Mini Shai-Hulud/TeamPCP campaign compromised the official intercom-client package on npm.
Story
On April 30, 2026, the official Node.js SDK for the customer messaging platform Intercom was published to npm carrying a credential stealer that researchers at StepSecurity tied to the Mini Shai-Hulud campaign then sweeping through CI/CD pipelines.
intercom-client is the package most Node.js applications use to talk to Intercom's API; it pulls roughly 360,000 weekly downloads. Version 7.0.4 went out through a hijacked GitHub Actions OIDC publishing path, which StepSecurity called direct evidence that Mini Shai-Hulud was now spreading on CI/CD tokens lifted from earlier victims rather than on stolen npm credentials alone. The clean 7.0.3 release shipped with SLSA provenance attached; 7.0.4 did not.
The package itself kept working. Underneath, it added a preinstall hook, a new setup.mjs loader, and an 11.7 MB single-line payload at router_runtime.js. The loader fetched Bun 1.3.13 from GitHub and used the runtime to execute the obfuscated JavaScript. The stealer reached beyond GitHub and npm tokens into AWS instance metadata at 169.254.169.254, GCP metadata at metadata.google.internal, Azure connection strings, PEM-encoded private keys, environment variables, and a set of generic API-key regexes.
Exfiltration was the wrinkle. Instead of POSTing to a third-party endpoint, the payload authenticated against api.github.com, created a private repository under the victim's own GitHub account, and committed the encrypted loot there. For a CI runner that already allowed outbound traffic to GitHub, the exfiltration looked indistinguishable from ordinary developer activity, and network-egress filtering offered little defense.
Affected Artifacts
- Observed
- 2026-04-30
- Compromised Versions
- Fixed
- 7.0.3
- Hashes
-
- sha256:5f748fbc89cde66abefa826439c765a0081a027792e9da8d80fbf23571311622
- sha1:1a1b1d0d89fadf7664c42ec628bac7d39a71bd50
- sha256:fe64699649591948d6f960705caac86fe99600bf76e3eae29b4517705a58f0e2
- +1 more
- Evidence
- distribution: npmjs.com/package/intercom-client/v/7.0.4, observable: npm integrity sha512:LcCAJzWI5Jkx75prg8T88aonPsExIrffcugdCDWhNv0HhmOlkA8xYqMuNHqjkgF8o9yxrs09tDub/6MWncK1Lg==, file: setup.mjs, file: router_runtime.js , +14 more
Incident Context
- Motive
- Credential Theft
- Attribution
- Group
- Cause
- CI/CD Exploit
- Transitive
- Yes
- Actor
- Advanced Persistent Threat
- User Impact
- 361510
External References
Source record: oss/attacks/intercom-client/meta.yaml