{"id":"MAL-2026-17788","summary":"Malicious code in gas-refuel-bridge (RubyGems)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (37bd99ebd0f028669dafee3405a3ac4ebb9e264b7d9bfce963e68b259dfe88a3)\nThe 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.\n","modified":"2026-10-11T14:30:07.557858893Z","published":"2026-10-11T13:45:36Z","database_specific":{"malicious-packages-origins":[{"modified_time":"2026-10-11T13:45:36Z","sha256":"37bd99ebd0f028669dafee3405a3ac4ebb9e264b7d9bfce963e68b259dfe88a3","source":"amazon-inspector","versions":["0.9.1"],"id":"IN-MAL-2026-021348","import_time":"2026-10-11T14:17:58.142997746Z"}]},"references":[{"type":"PACKAGE","url":"https://rubygems.org/gems/gas-refuel-bridge/versions/0.9.1"}],"affected":[{"package":{"name":"gas-refuel-bridge","ecosystem":"RubyGems","purl":"pkg:gem/gas-refuel-bridge"},"versions":["0.9.1"],"database_specific":{"cwes":[{"description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code","cweId":"CWE-506"}],"indicators":{"evidence_files":[{"path":"ext/gas_refuel_bridge/extconf.rb","sha256":"10218e975f54a4f11fe3954e1b584a5f05054003bf5773c3c2b8cceaa74ba763","tlsh":"9751775acf8359e55aa1c0c045798012faa3ab0a50646875f3ee0868ff59b26c0f12fe"},{"tlsh":"b2c02b409c10f00783b09561bbc0019ba800c0cc9000c30b4874063cc0988518e65419","path":"README.md","sha256":"c11ea90465c14afe868c0d0028b54d69fbad390a73ddb7779e88becd2957d8f3"}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/rubygems/gas-refuel-bridge/MAL-2026-17788.json"}}],"schema_version":"1.9.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}