gem · Malicious package advisory
Malwareweb3-signer-kit
GHSA-m6qx-67h3-wwrh
Malicious code in web3-signer-kit (RubyGems)
Details
**Severity:** Critical
**Affected versions:** `= 0.9.1`
## Source: amazon-inspector (fe57c8011ef7048ef33ccdb828615b8efd9ab10799a2a730d12c2d854c2e0895)
The gem's extconf.rb decodes a base64 literal and eval's it at `gem install` time inside a double-forked, session-detached child whose stdio is redirected to /dev/null. The decoded payload opens a TCPSocket to 45.138.12.177:8089 and bridges a `/bin/sh` process over that socket via IO.popen + IO.copy_stream, yielding full-host remote code execution for the operator of that endpoint. Execution is gated by sandbox-evasion checks that skip CI, ephemeral/short-uptime hosts, analyst-style usernames, and analysis paths, and requires developer artifacts (~/.ssh, ~/.gitconfig, ~/.gem/credentials) to be present before firing; a randomized sleep of 1200+rand(1200) seconds further delays detonation. The package has no legitimate functionality: metadata describes it as a 'web3 signer kit' while the README advertises `bitcoin-rpc-lite`, the library exposes only stub methods (`build_id`, `healthy?`), and extconf.rb calls `create_makefile('bitcoin_rpc_lite_native')` with no C sources shipped. The entire gem is a decoy wrapper around the dropper in extconf.rb.
---
Credit: [OpenSSF](https://github.com/ossf/malicious-packages) ([source](https://github.com/ossf/malicious-packages/blob/ff41f6680a0ebbef2268cdb5daf253d4b400cb05/osv/malicious/rubygems/web3-signer-kit/MAL-2026-17801.json))
**References:**
- https://github.com/ossf/malicious-packages/blob/ff41f6680a0ebbef2268cdb5daf253d4b400cb05/osv/malicious/rubygems/web3-signer-kit/MAL-2026-17801.json
- https://rubygems.org/gems/web3-signer-kit/versions/0.9.1
- https://github.com/advisories/GHSA-m6qx-67h3-wwrhCompromised versions (1)
- = 0.9.1
Any computer that installed or ran a compromised version should be considered fully compromised. Rotate every secret on that machine from a clean environment.