Compromised intercom-php Package on GitHub
A malicious commit tagged as version 5.0.2 was pushed to the intercom/intercom-php repository on GitHub, containing a Composer plugin that downloaded the Bun JavaScript runtime and executed an obfuscated credential-harvesting payload, targeting cloud provider credentials, environment variables, SSH keys, and CI/CD secrets.
On April 30, 2026, the intercom/intercom-php repository on GitHub was subject to a supply chain attack. A compromised service account, github-management-service, was used to push a malicious commit tagged as version 5.0.2. This attack is part of the broader “Mini Shai-Hulud” campaign, which also targeted the intercom-client package on npm. The malicious version of intercom-php included a Composer plugin designed to act as a dropper. It downloaded the Bun JavaScript runtime (version 1.3.13) and executed an obfuscated credential-harvesting payload. The malicious tag was live for approximately 1 hour and 44 minutes, between 20:53 UTC and 22:37 UTC on April 30, 2026, before being identified and reverted. This incident highlights the risk of supply chain attacks targeting widely-used packages and the potential for significant credential compromise.
Attack Chain
- A compromised service account (
github-management-service) pushes a malicious commit to theintercom/intercom-phprepository. - The malicious commit is tagged as version 5.0.2 and published to GitHub.
- Developers using
intercom-phpmay inadvertently install the malicious version viacomposer updateorcomposer installif performed during the compromised window. - The Composer plugin within the malicious package is executed during the installation process.
- The plugin downloads the Bun JavaScript runtime (version 1.3.13) to the affected system.
- The Bun runtime executes an obfuscated JavaScript payload.
- The JavaScript payload attempts to harvest credentials, including cloud provider credentials (AWS, GCP, Azure), environment variables, .env files, SSH keys, local configuration files, and CI/CD secrets.
- The harvested credentials could then be exfiltrated by the attacker for unauthorized access to cloud resources and sensitive data.
Impact
This supply chain attack directly compromised the intercom-php package, potentially affecting any project that installed or updated to version 5.0.2 between 20:53 UTC and 22:37 UTC on April 30, 2026. Successful exploitation leads to the theft of sensitive credentials, including those for major cloud providers (AWS, GCP, Azure), potentially granting attackers access to critical infrastructure and sensitive data. Even a short window of exposure can lead to widespread compromise if a large number of projects pull the malicious package.
Recommendation
- Immediately check if your projects installed
intercom/intercom-phpversion 5.0.2 between 20:53 and 22:37 UTC on April 30, 2026, usingcomposer show intercom/intercom-php --versionas indicated in the overview. - If the project installed the malicious version, treat all credentials accessible from that environment as compromised and rotate them, as mentioned in the Workarounds section.
- Clear the Composer cache using
composer clear-cacheto prevent further installations of the malicious package, as recommended in the Patches section. - Verify the commit hash in your
composer.lockfile against the malicious hashe69bf4b3and the clean hash9371eba9, as suggested in the Overview and Workarounds sections. - Deploy the Sigma rule
Detect Bun Executionto identify instances where the Bun JavaScript runtime is executed, potentially indicating malicious activity from the dropper. - Enable process creation logging with command-line arguments to effectively utilize the
Detect Bun ExecutionSigma rule.
Detection coverage 2
Detect Bun Execution
highDetects the execution of the Bun JavaScript runtime, which was used as part of the intercom-php supply chain attack to execute a credential-harvesting payload.
Detect Composer Plugin Installation
lowDetects the installation of Composer plugins which could indicate the presence of a malicious plugin from a compromised package.
Detection queries are available on the platform. Get full rules →