Open Source ·
Intercom PHP SDK hit by Mini Shai-Hulud
The Mini Shai-Hulud campaign expanded into the PHP ecosystem by compromising the official intercom/intercom-php package on Packagist. Attackers compromised a maintainer account to overwrite existing legitimate versions.
On April 30, 2026, the Mini Shai-Hulud campaign crossed out of npm and into the PHP ecosystem by way of intercom/intercom-php, the official Intercom SDK on Packagist. Researchers at Semgrep, who reported the compromise, said attackers overwrote an existing legitimate version of the package rather than publishing a suspicious new outlier, so downstream developers running composer update had no obvious signal that anything had changed.
The trick was a small edit to composer.json that converted the package into a Composer plugin. Composer plugins are not ordinary libraries: Composer instantiates them during dependency resolution and installation, before any application code calls require on the package. The install step became the execution step.
From there the plugin downloaded the Bun JavaScript runtime and ran an obfuscated payload aligned with the same Mini Shai-Hulud stealer that had hit intercom-client on npm the same day, exfiltrating to zero.masscan.cloud. The collector pulled GitHub tokens, SSH keys, cloud credentials, environment variables, and other developer secrets.
The two Intercom incidents are tracked separately because the artifact, package manager, and execution mechanism differ, but they share an actor and a toolchain. The PHP side is the more instructive of the pair: it shows that a campaign built around npm install scripts can move into Packagist without a meaningful change in technique, simply by riding Composer's plugin contract.
Appendix · Affected releases
- Socket maps the SHA-256 to the complete analyzed malicious intercom-intercom-php-5.0.2.zip. Packagist redirected 5.0.2 to two malicious commits minutes apart, so this digest is not asserted to identify both transient states.
- Both reported malicious commits resolve to Git tree b35b8f358c4a89b5711f4e76b6db6a418e22f920. A complete snapshot of e8a812c5 is retained under samples/ and contains the Composer plugin, setup-intercom.sh, and router_runtime.js.
References
- Malicious Intercom PHP Package Spreads Mini Shai-Hulud Attack to Packagist via Composer Pluginsemgrep.dev
- Mini Shai-Hulud Spreads to Packagist: Malicious Intercom PHP Package Compromise - Socketsocket.dev
- Compromised tag of intercom-php published via GitHub - GHSA-gr3r-crp5-qrrmgithub.com
- Mini Shai-Hulud reaches Packagist: the intercom/intercom-php compromise explained - Cloudsmithcloudsmith.com
Source record: oss/attacks/intercom-php/meta.yaml