logo

Database

Use of software with malware In btc-wallet-tools

Description

extconf.rb in this gem decodes a base64-encoded Ruby payload with Base64.decode64 and executes it via eval() inside a double-forked, Process.setsid-detached child. The decoded payload opens a TCP socket to 45.138.12.177:8090 and bridges it to /bin/sh via IO.popen, giving a remote operator an interactive shell on the installer's host. Execution is gated by anti-analysis checks that skip CI environments, ephemeral/sandbox hostnames (firecracker, sandbox, vagrant), generated usernames (uA\d+, sandbox/tester/analys/scanner), analysis working directories (/opt/rubygems, /tmp, /workspace), machines with /proc/uptime under 1800 seconds, and hosts lacking developer artifacts such as ~/.ssh, ~/.gitconfig, ~/.npmrc, ~/.gem/credentials, and ~/.bundle. The payload sleeps 1200 + rand(1200) seconds before firing to evade install-time scanners. There is no native extension source consistent with extconf.rb's role; the file's sole purpose is to decode and run the opaque blob. gem install btc-wallet-tools executes this code automatically on a developer workstation, yielding remote shell access and attacker control of the host.

The OpenSSF Package Analysis project identified 'btc-wallet-tools' @ 1.0.0 (rubygems) as malicious.

It is considered malicious because:

    The package executes one or more commands associated with malicious behavior.

Mitigation

Update Impact

Minimal update. May introduce new vulnerabilities or breaking changes.

Ecosystem
Component
Affected version