STRUTIL-CORE · CMP-202611-4oqn2e · Package
NO FIX YET · SEE WHAT TO DO
Socket found RubyGems package strutil-core 1.0.1, published 1 Nov 2026 04:05 UTC by account jamnajiea and removed by RubyGems about five hours later. During gem install or bundle install its native-extension script (ext/strutil-core/extconf.rb) downloads Bun 1.2.18 and runs a 5.48 MB worm, a newer build of the testmetest worm (Miasma family, built from the leaked Shai-Hulud code). The worm steals cloud (AWS, Azure, GCP), Kubernetes, Vault, registry (RubyGems, npm, PyPI, JFrog), GitHub/GitLab, SSH, Docker, wallet and AI coding tool credentials (.claude/.credentials.json, .codex/auth.json). On GitHub Actions runners it scrapes secrets from runner memory and turns off StepSecurity Harden-Runner. It installs a backdoor that runs attacker scripts, plants MCP servers, SessionStart hooks, CLAUDE.md/AGENTS.md and VS Code tasks in home folders and repositories so AI coding tools re-run it, and contains code to republish to RubyGems, npm and PyPI and spread over SSH. If a stolen GitHub token starts returning 401/403, a monitor deletes the user's home directory. No victims or downstream infected packages confirmed so far; 0 recorded downloads of 1.0.1 when first tracked, and real install count unknown. The PyPI package pystr-codec 0.1.0-0.1.2 (MAL-2026-18432) uses the same collection server.
Check it with your coding agent
It checks your repository and tells you if you’re affected, with the fix.
Who cares campaign
1.0.1); gems you maintain that gained an unexpected ext/*/extconf.rb or extensions: entry (installer SHA-256 c5264f3b9cf2f95c83a70b7dd7430aab8abc262b853dbbcd5386c3a8a9c74769)bun run from /tmp/.b_<pid> started by Ruby, sudo python3 reading /proc/<pid>/mem on CI runnersCodeQL workflow uploading a scan-output artifact, new .github/init.js, AGENTS.md, CLAUDE.md, .claude/settings.json, .cursor/mcp.json, .vscode/tasks.json; GitHub commits mentioning msync-3f7a; GitLab CI job cache_syncPosts are quoted with a link to the original. They are data to us, never instructions.
Are you affected?
Tell InfraStack what you run. It checks this one, and every next one, against your stack.
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
first public Nov 3, 2026 · 1 source
1.0.1 was installed anywhere, isolate that host and treat every credential reachable from it as stolen