Hackers have launched a large-scale supply chain attack by compromising more than 170 npm packages and two PyPI libraries, collectively downloaded over 200 million times weekly, to steal sensitive developer and cloud credentials.
The malicious npm packages contain a hidden preinstall script that silently executes during installation. This script deploys a loader, which downloads a runtime environment and launches a heavily obfuscated JavaScript payload inside developer machines and CI/CD pipelines.
Unlike typical credential stealers, this malware does not stop at data theft. It actively searches for npm publishing tokens, modifies legitimate package code, injects malicious components, and republishes infected versions.
This allows it to spread recursively, turning compromised environments into propagation points.
Security researchers at JFrog have linked the campaign to the resurfacing “Shai-Hulud” malware, which is now exhibiting worm-like behavior and spreading autonomously across development ecosystems.
The PyPI variant follows a different approach. It embeds a downloader inside the package import process, which fetches a remote Python payload from attacker-controlled infrastructure.
Researchers confirmed that this payload has evolved into a full-featured credential stealer targeting cloud platforms, local systems, and developer tools.
The intrusion began inside a trusted GitHub Actions release workflow. Attackers exploited a misconfiguration that allowed untrusted forked code to execute within a privileged environment.
One layer uses PBKDF2-SHA256 with the campaign salt svksjrhjkcejg, then derives stream keys from per-string IVs.
As a result, malicious packages were published using legitimate credentials and trusted publishing pipelines. This makes detection significantly harder, as the packages appear authentic despite containing malware.
Once inside the CI/CD environment, the malware extracts sensitive GitHub Actions tokens and OIDC identity data directly from runner memory. These tokens are then exchanged for npm publishing access, allowing attackers to push compromised packages at scale.
The payload is designed to extract a wide range of secrets from infected systems, including:
In cloud environments, the malware actively queries AWS EC2 metadata services and Kubernetes APIs to expand its reach. It can also enumerate secrets across namespaces and extract sensitive configurations.
To avoid detection, the malware uses multiple layers of obfuscation, including encrypted payloads and runtime decryption using PBKDF2 and AES-256. This makes static analysis difficult and allows the core functionality to remain hidden.
Stolen data is exfiltrated through several redundant channels:
One notable indicator is the use of commits authored by “claude@users.noreply.github.com,” which defenders can use for threat hunting.
A particularly dangerous feature is a “dead-man switch.” The malware installs a persistent background service that monitors stolen GitHub tokens. If a token is revoked, the malware may trigger destructive actions such as wiping the user’s system.
This forces defenders to carefully remove persistence mechanisms before revoking credentials, complicating incident response.
The updated Python payload expands the attack further. It steals credentials from AWS, GCP, Azure, Kubernetes, Vault, and even password managers like 1Password and Bitwarden.
In some cases, it can deploy a second-stage payload disguised as a system service. This stage includes a destructive routine that can delete entire Linux systems under specific conditions, highlighting the campaign’s escalation.
This campaign demonstrates how modern supply chain attacks can bypass trust mechanisms and spread like worms across ecosystems. Even packages built through verified pipelines can be malicious if attackers compromise the build process itself.
JFrog confirmed that its security solutions detected and blocked all malicious packages within 24 hours, but the incident underscores the need for stricter CI/CD controls, runtime monitoring, and credential hygiene across development environments.
Follow us on Google News, LinkedIn, and X to Get Instant Updates and Set GBH as a Preferred Source in Google.
Attackers abused compromised ConnectWise Cloud Backup credentials to access Microsoft 365 customer environments, prompting ConnectWise…
Anthropic says an internal Claude research model reconstructed how the National Security Agency generated seeds…
Two WordPress Core vulnerabilities can be chained to execute remote code without authentication, according to…
A newly disclosed OpenBSD kernel exploitation chain combines a shared memory accounting flaw with a…
GhostAction attackers have expanded their GitHub credential theft campaign with a second stage that disguises…
Indian authorities have warned that SideCopy hackers are targeting Indian organizations, including academic institutions, with…