Socket Threat Research is tracking a new supply chain attack wave tied to the Mini Shai-Hulud, Miasma, and Hades malware family, affecting LeoPlatform/RStreams npm packages, three llxlr-published npm packages, and the Verana Blockchain Go module. The campaign abuses npm poisoning, GitHub Actions, binding.gyp execution, Bun-staged payloads, and developer-tool hooks to steal secrets and spread across repositories and CI/CD workflows. #LeoPlatform #RStreams #VeranaBlockchain #MiniShaiHulud #Miasma #Hades #RevokeAndItGoesKaboom
Keypoints
- Malicious npm releases hit LeoPlatform and RStreams packages in a tight burst on June 24, 2026.
- Three additional malicious npm packages published by llxlr were also identified: hexo-deployer-wrangler, hexo-shoka-swiper, and prism-silq.
- The campaign uses binding.gyp and node-gyp to trigger code execution during installation, even without obvious preinstall or postinstall scripts.
- Payloads use ROT-style decoding, AES-GCM decryption, JavaScript obfuscation, and Bun-based staging to run the main malware.
- The malware targets developer, CI/CD, cloud, and AI-tool credentials, including GitHub tokens, npm tokens, AWS, Azure, GCP, Vault, SSH keys, and Slack tokens.
- GitHub Actions is a major focus, with secret theft, artifact uploads, repository poisoning, and workflow abuse, including the RevokeAndItGoesKaboom marker.
- Socket also found the same family in a Verana Blockchain Go module/source archive, showing the campaign extends beyond npm into source-repository and IDE-triggered execution.
MITRE Techniques
- [T1195.002 ] Compromise Software Supply Chain â The attackers poisoned npm packages and a Go module to distribute malicious payloads through trusted developer dependencies. (âmalicious npm releasesâ and âsource-repository compromiseâ)
- [T1059.007 ] JavaScript â The payload is delivered as obfuscated JavaScript and executed through index.js, eval(), and Bun. (âexecutes JavaScript during the build configuration phaseâ and âimmediate eval() executionâ)
- [T1055 ] Process Injection â No direct process injection is described in the article.
- [T1059.006 ] Command and Scripting Interpreter: JavaScript â The malware uses JavaScript loaders and hooks to execute staged code. (âa large one-line JavaScript loaderâ)
- [T1106 ] Native API â The malicious binding.gyp leverages node-gyp and shell expansion to invoke commands during install/build steps. (ânpm automatically invokes node-gypâ and âcommand expansionâ)
- [T1027 ] Obfuscated Files or Information â The payload uses Caesar-style shifts, AES-GCM-encrypted blobs, lookup tables, and string hiding. (âJavaScript-obfuscator-style string hidingâ and âobfuscated payloadâ)
- [T1027.009 ] Embedded Payloads â The malware decrypts embedded stages from within the loader. (âdecrypted AES-GCM payloadsâ)
- [T1059.001 ] PowerShell â No PowerShell activity is described in the article.
- [T1059.004 ] Unix Shell â The malware relies on shell expansion and command execution in the install path. (âinvokes a shell expansionâ)
- [T1105 ] Ingress Tool Transfer â The malware attempts to download or install Bun if it is missing. (âattempts to download or install itâ)
- [T1021 ] Remote Services â The campaign abuses GitHub Actions, GitHub API behavior, and trusted developer workflows for spread and exfiltration. (âGitHub Actions secret theftâ and âGitHub API behavior for staging and exfiltrationâ)
- [T1078 ] Valid Accounts â Stolen GitHub, npm, cloud, and CI/CD credentials are used for further access and propagation. (âPackage registry credentials allow malicious republishesâ)
- [T1552 ] Unsecured Credentials â The payload collects secrets from .env files, tokens, SSH keys, cloud credentials, and CI secrets. (âcollects .env files, npm and PyPI tokens, GitHub tokensâ)
- [T1560 ] Archive Collected Data â The campaign uploads artifacts containing stolen secrets from GitHub Actions runs. (âdumping GitHub Actions secrets into an uploaded artifactâ)
- [T1213 ] Data from Information Repositories â The malware searches repositories and GitHub commits for operational markers and dead-drop content. (âGitHub commit search resultsâ and âdead-drop channelâ)
- [T1098 ] Account Manipulation â The attackers alter repositories, add workflows, poison branches, and plant persistence hooks. (âit can alter repositories, add workflows, poison branchesâ)
- [T1546 ] Event Triggered Execution â The malware uses folder-open tasks, Claude hooks, Cursor rules, and workflow hooks to trigger execution. (âVS Code folder-open taskâ and âClaude SessionStart hookâ)
- [T1053.005 ] Scheduled Task/Job: Scheduled Task â The article does not describe Windows scheduled tasks, but it does mention workflow and folder-open execution triggers.
- [T1611 ] Escape to Host â Not explicitly described.
- [T1133 ] External Remote Services â The campaign targets cloud, CI/CD, and third-party service credentials such as AWS, Azure, GCP, Vault, Slack, and Twilio. (âAWS credentials, Azure credentials, GCP credentials, Vault dataâ)
Indicators of Compromise
- [Package names/version ] Malicious npm packages published in the campaign â [email protected], [email protected], and 2 more packages
- [Package names/version ] Additional malicious packages published by llxlr â [email protected], [email protected], and 1 more package
- [File names ] Infected package and repository payloads â binding.gyp, _index.js, and other injected config files
- [File names ] AI/IDE persistence and execution hooks â .claude/setup.mjs, .github/setup.js, and other setup files
- [File names ] Developer-tool workflow artifacts â .vscode/tasks.json, .claude/settings.json, and .gemini/settings.json
- [File names ] Verana Blockchain source archive artifacts â verana-blockchain-v0.10.1-dev.20.zip, .claude/index.js, and .vscode/setup.mjs
- [SHA-256 hashes ] Confirmed LeoPlatform/RStreams artifacts â 32d1bc728d8e504952083a6adc488c309a401c7df4dc8f47b382ce32e4aebe21, 57ba86f6f0caaa580c1dccdf4ed7873d1470e5ea2f8e9ca7a989dc04899f13c0, and 4a0aa78757958683155a7b9289427fb829abcad1bf5ee6399eb73e8409b0bc11
- [SHA-256 hashes ] Verana Blockchain archive and payload hashes â b3e217f4354e8a4383038b99b0bcaeaff191a79df58e7a1f2355a79aac2faf13, 15b415ae41df72acf1f7e9e67569531d41dee62d089d34b4c0fab0c7fe5cc14f, and 6cb3fc3650355973b8a1ed86619a3f412fb0700f29c1c3a736cada4c2c76a9f7
- [Campaign strings ] Operational markers linked to the cluster â RevokeAndItGoesKaboom, Alright Lets See If This Works, and TheBeautifulSandsOfTime
MITRE Techniques
- [T1195.002 ] Compromise Software Supply Chain â The attackers poisoned npm packages and a Go module to distribute malicious payloads through trusted developer dependencies. (âmalicious npm releasesâ and âsource-repository compromiseâ)
- [T1059.007 ] JavaScript â The payload is delivered as obfuscated JavaScript and executed through index.js, eval(), and Bun. (âexecutes JavaScript during the build configuration phaseâ and âimmediate eval() executionâ)
- [T1059.006 ] Command and Scripting Interpreter: JavaScript â The malware uses JavaScript loaders and hooks to execute staged code. (âa large one-line JavaScript loaderâ)
- [T1106 ] Native API â The malicious binding.gyp leverages node-gyp and shell expansion to invoke commands during install/build steps. (ânpm automatically invokes node-gypâ and âcommand expansionâ)
- [T1027 ] Obfuscated Files or Information â The payload uses Caesar-style shifts, AES-GCM-encrypted blobs, lookup tables, and string hiding. (âJavaScript-obfuscator-style string hidingâ and âobfuscated payloadâ)
- [T1027.009 ] Embedded Payloads â The malware decrypts embedded stages from within the loader. (âdecrypted AES-GCM payloadsâ)
- [T1105 ] Ingress Tool Transfer â The malware attempts to download or install Bun if it is missing. (âattempts to download or install itâ)
- [T1552 ] Unsecured Credentials â The payload collects secrets from .env files, tokens, SSH keys, cloud credentials, and CI secrets. (âcollects .env files, npm and PyPI tokens, GitHub tokensâ)
- [T1560 ] Archive Collected Data â The campaign uploads artifacts containing stolen secrets from GitHub Actions runs. (âdumping GitHub Actions secrets into an uploaded artifactâ)
- [T1213 ] Data from Information Repositories â The malware searches repositories and GitHub commits for operational markers and dead-drop content. (âGitHub commit search resultsâ and âdead-drop channelâ)
- [T1098 ] Account Manipulation â The attackers alter repositories, add workflows, poison branches, and plant persistence hooks. (âit can alter repositories, add workflows, poison branchesâ)
- [T1546 ] Event Triggered Execution â The malware uses folder-open tasks, Claude hooks, Cursor rules, and workflow hooks to trigger execution. (âVS Code folder-open taskâ and âClaude SessionStart hookâ)
- [T1133 ] External Remote Services â The campaign targets cloud, CI/CD, and third-party service credentials such as AWS, Azure, GCP, Vault, Slack, and Twilio. (âAWS credentials, Azure credentials, GCP credentials, Vault dataâ)
Read more: https://socket.dev/blog/miasma-mini-shai-hulud-hits-leoplatform-npm-packages-go-ecosystem