logo

How 56 npm packages used binding.gyp to steal CI/CD secrets

ID: 31fbc9f0-b4e0-5008-a115-3d70261ce244

STIX ID: report--31fbc9f0-b4e0-5008-a115-3d70261ce244

Feed Name: ReversingLabs Blog

Threat Score
90/100

Date Published: 2026-06-04

Date Updated: 2026-06-05

Author: RL Research Team

...
...

Over a ten-hour window on June 3–4, 2026 an attacker pushed 286 malicious npm package versions across 56 packages by embedding a binding.gyp that forced node-gyp to execute a large, multi-stage encrypted payload at install time; the malware targeted CI/CD runners to harvest credentials and secret files, exfiltrated data to attacker-controlled GitHub repositories, established persistent update and dead-man-switch monitors (including a destructive handler that deletes home directories when stolen GitHub tokens are revoked), and implemented worm-like propagation to republish trojanized packages and inject workflow steps. Recommended actions include isolating affected systems before revoking credentials, rotating all exposed tokens and keys, scanning for binding.gyp in pure-JS packages and unusually large index.js files, and enabling 2FA on npm accounts.

Your team is not currently subscribed to this feed. You must subscribe to it in order to see this post.