← Back to overview

Socket's Threat Research Team discovered strutil-core 1.0.1, a malicious RubyGems package published by account 'jamnajiea' that embeds a 5.48 MB credential-stealing worm derived from the Shai-Hulud toolkit, identified as a new build of the testmetest worm from the Miasma family. The gem uses a native extension hook (extconf.rb) to download the Bun JavaScript runtime and execute a payload at install time, stealing credentials from cloud providers, CI systems, package registries, SSH, AI coding tools, and cryptocurrency wallets, exfiltrating them to paleasbest[.]top. The worm self-propagates by injecting itself into gems, npm, and PyPI packages using stolen API keys, and installs a Python backdoor (sync.py) controlled via signed GitHub commit messages. It poisons AI coding tools by writing malicious MCP server configs, session hooks, and agent instruction files both locally and into repositories. A particularly destructive feature is a 'wiper' that deletes the user's home directory if a stolen GitHub token is revoked (returning HTTP 401/403). Socket's AI Scanner flagged the malicious version 70 seconds after publication; RubyGems removed both versions approximately five hours after the malicious release. A related PyPI package, pystr-codec, shares the same C2 endpoint.

Affected products

  • AWS
  • Azure
  • Claude
  • Cursor
  • Gemini
  • GitHub
  • GitHub Actions
  • GitLab
  • Google Cloud
  • HashiCorp Vault
  • JFrog Artifactory
  • Kubernetes
  • PyPI
  • RubyGems
  • VS Code
  • npm

Related threat actors

  • Miasma
  • testmetest

IOC's

  • paleasbest[.]top
  • https://paleasbest[.]top/v1/api
  • strutil-core
  • pystr-codec
  • jamnajiea
  • msync-3f7a
  • AutoSyncComplete
  • project-utils
  • 3b3f6e1bde0b28b015030a81a6d805b5b5306dc3f021e1102123971cfd83acc0
  • 306c1deec402e8b4a6478e7f0fe02194bcd224d37d8fc6ba61ad1951e8abd7a9
  • c5264f3b9cf2f95c83a70b7dd7430aab8abc262b853dbbcd5386c3a8a9c74769
  • 66c1c6b6b2c47e96fa5fd328338b939e1360511ab5eb2dda6d9112f592259d6b
  • c7ef186aa59b67d9b198a14f6dc8aaee6dd86510ac7c37d28f65d310cd846411
  • e29a5319888319b51345ab8e3e009938ee5c2b9ae5d6bdd053f4f44c98f309d3
  • c78daf27c42c3929758b24c2ef0baf65eea81b26b0fddfe8a5b748672d40d5f5
  • pkg-runtime
  • net-health-checker
  • ~/.config/index.js
  • /var/tmp/.fontconfig_state
  • ~/.local/share/runtimes/sync.py

Categories

  • Data Breach & Exfiltration
  • Identity & Access
  • Ransomware & Malware
  • Supply Chain & Dependencies