gem · Malicious package advisory
Malwaremev-sandwich-detect
GHSA-pcpf-mq97-v8pp
Malicious code in mev-sandwich-detect (RubyGems)
Details
**Severity:** Critical **Affected versions:** `= 0.9.1` ## Source: amazon-inspector (5d92e0d32c64cdab1627cbfe5bd1d79445d0ff09f4d24336dd9026c02fe46917) mev-sandwich-detect 0.9.1 is a stub gem whose only functional behavior is install-time code execution. The gemspec declares a native extension, but ext/extconf.rb ships no C/C++ sources and does not build an addon; instead it base64-decodes an embedded Ruby payload and eval()s it inside a double-forked, detached, output-silenced child process during `gem install`. The decoded payload opens a TCPSocket to the hardcoded host 45.138.12.177 on port 8089 and bridges it to /bin/sh via IO.popen and IO.copy_stream, yielding an interactive shell on the installer's host to the operator of that IP. Execution is gated by anti-analysis checks: the payload exits early if the host appears to be CI, an ephemeral/sandbox VM, a generated analyst username, or running under /tmp or /opt/rubygems analysis paths, and requires uptime over 1800 seconds and the presence of developer-credential artifacts (~/.ssh, ~/.gitconfig, ~/.gem/credentials, ~/.npmrc, ~/.bundle) before dialing out, after sleeping a randomized 20-40 minutes. The lib/ entry point is a 13-line no-op defining only VERSION/build_id/healthy?, and the README is mislabeled as 'bitcoin-rpc-lite'. The native-extension slot exists solely as a lifecycle execution vector for the reverse shell. --- Credit: [OpenSSF](https://github.com/ossf/malicious-packages) ([source](https://github.com/ossf/malicious-packages/blob/ff41f6680a0ebbef2268cdb5daf253d4b400cb05/osv/malicious/rubygems/mev-sandwich-detect/MAL-2026-17790.json)) **References:** - https://github.com/ossf/malicious-packages/blob/ff41f6680a0ebbef2268cdb5daf253d4b400cb05/osv/malicious/rubygems/mev-sandwich-detect/MAL-2026-17790.json - https://rubygems.org/gems/mev-sandwich-detect/versions/0.9.1 - https://github.com/advisories/GHSA-pcpf-mq97-v8pp
Compromised 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.