Use of software with malware In wallet-crypto-utils
Description
The gem declares a native extension (ext/req_throttle_mini/extconf.rb) that ships no C/C++/Rust sources; the extconf.rb only calls create_makefile('wallet_crypto_utils_native') after a hostile preamble. That preamble decodes a base64 blob and passes the result to eval inside a double-forked detached child. The decoded payload opens a TCP socket to the hardcoded bare IP 45.138.12.177 on port 8089, spawns /bin/sh via IO.popen, and bridges the shell's stdio over the socket with IO.copy_stream in a reconnect loop, yielding an interactive remote shell on the installer's host. Execution is gated behind sandbox/analysis-evasion checks: it skips CI environments, ephemeral/sandbox hostnames, generated analyst usernames, analysis path prefixes, and hosts with short uptime, and only fires when developer artifacts are present on disk (~/.ssh, ~/.gitconfig, ~/.gem/credentials, ~/.bundle, ~/.npmrc). The library file lib/wallet_crypto_utils.rb contains ~707 bytes of base58 helpers that do not require any native code, confirming the extension exists solely to auto-execute the install-time payload. The name suggests a cryptocurrency-wallet utility and the targeted artifact list (SSH keys, git config, gem/bundler/npm credentials) indicates developer-workstation compromise and credential theft follow-on.
The OpenSSF Package Analysis project identified 'wallet-crypto-utils' @ 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 |
|---|---|---|
rubygems |
Aliases
References