{"answers":{"affected":"1 open source package ship an affected version, including block-explorer-api.","exploited":"There is no known exploitation of MAL-2026-17780 in the wild and no public exploit code.","fix":"Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.","what":"MAL-2026-17780 is a malicious package in block-explorer-api, published on 11 Oct 2026."},"fix_prompt":"MAL-2026-17780 is a malicious package: block-explorer-api (RubyGems). Every version was published to cause harm.\n\nTask:\n1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.\n2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.\n3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.\n4. If the package is not used anywhere, say so and change nothing.\n\nReference: https://insights.sbomify.com/MAL-2026-17780/ (Markdown: https://insights.sbomify.com/MAL-2026-17780/index.md)","id":"MAL-2026-17780","markdown":"https://insights.sbomify.com/MAL-2026-17780/index.md","name":"MAL-2026-17780","record":{"aliases":[],"analysis":null,"analysis_generated_by":null,"assigner":null,"cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"The gem's native-extension build script (extconf.rb) decodes a base64-encoded Ruby payload and passes it to eval() inside a double-forked, detached child process with stdio redirected to /dev/null. The decoded payload opens a TCP connection to the hardcoded bare-IP C2 45.138.12.177:8089 and bridges it to /bin/sh via IO.popen and IO.copy_stream in both directions, yielding a full interactive reverse shell on the installer's host under the installing user. Execution is gated by anti-analysis checks that skip CI runners, ephemeral/sandbox hostnames (uvm, firecracker, sandbox, vagrant), generated analyst usernames (uA\\d+, sandbox, tester, analys, scanner), common analysis working paths (/opt/rubygems, /tmp, /var/tmp, /workspace), and hosts with uptime under 1800 seconds, firing only when developer-signal files such as ~/.ssh, ~/.gem/credentials, ~/.gitconfig, or ~/.npmrc are present, and after a randomized 20-40 minute delay. The shipped library at lib/block_explorer_api.rb is an inert 10-line stub (VERSION, build_id, healthy?) and the gemspec name (block-explorer-api, authored by generic 'block maintainers') does not match the README, which describes the package as 'bitcoin-rpc-lite'; the install hook contains the entire functional payload while the advertised library does nothing.\n\nThe OpenSSF Package Analysis project identified 'block-explorer-api' @ 0.9.1 (rubygems) as malicious.\n\nIt is considered malicious because:\n\n- The package executes one or more commands associated with malicious behavior.","ecosystems":["RubyGems"],"exploits":{"exploitdb":null,"first_seen":null,"github_poc":null,"max_poc_stars":null,"metasploit":null,"nuclei":null,"refs":[],"tier":null},"has_fix":false,"headline":"Malicious code in block-explorer-api (RubyGems)","id":"MAL-2026-17780","indexable":true,"kev":null,"kind":"malicious","links":{"ecosystem":"RubyGems","product":null,"products":[],"type":null,"year":"2026"},"n_packages":1,"n_references":null,"packages":[{"ecosystem":"RubyGems","fixed":[],"introduced":[],"last_affected":[],"package":"block-explorer-api","purl":"pkg:gem/block-explorer-api","source":"MAL-2026-17780"}],"products":null,"published":"2026-10-11","related":[],"sources":[{"class":"attribution","licence":"Apache-2.0","name":"OpenSSF Malicious Packages","prefix":"MAL"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":null,"updated":null,"vendors":null},"summary":null,"url":"https://insights.sbomify.com/MAL-2026-17780/"}