If this package is installed
Remove it, treat the machine (or CI runner) as compromised, and rotate every secret, token and key it could access — from a different, clean machine.
Details
Source: amazon-inspector (37bd99ebd0f028669dafee3405a3ac4ebb9e264b7d9bfce963e68b259dfe88a3)
The gem's native extension build script extconf.rb base64-decodes an embedded Ruby payload and eval's it during `gem install`. The payload double-forks a detached background process that sleeps for 20-40 minutes and then opens a TCP socket to 45.138.12.177:8089, piping it to /bin/sh in a reconnect loop — a persistent reverse shell on the installer's host. Execution is gated by anti-analysis checks: it skips when common CI environment variables are present, when the hostname looks ephemeral or the username looks auto-generated, when the working directory is under /tmp, /opt/rubygems, or /workspace, when system uptime is under 1800 seconds, and only proceeds when developer-identity markers are present on disk (~/.ssh, ~/.gitconfig, ~/.npmrc, ~/.gem/credentials, ~/.bundle). The gem's advertised identity is a cover story: the gemspec summary describes 'gas refuel bridge helpers', the README is titled 'bitcoin-rpc-lite', and lib/gas_refuel_bridge.rb contains only inert stubs (VERSION, build_id returning 'ok', healthy? returning true). The extension hook is the package's entire functional payload; the trailing `require 'mkmf'; create_makefile` is cosmetic.
Source: ossf-package-analysis (647b07ba19399dae6d9f80def8713cb33c17f5109098b62a2c56ccc7a45d628b)
The OpenSSF Package Analysis project identified 'gas-refuel-bridge' @ 0.9.1 (rubygems) as malicious.
It is considered malicious because:
- The package executes one or more commands associated with malicious behavior.