Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

perp-funding-ratesRubyGems

Advisory published Updated

perp-funding-rates is a confirmed malicious RubyGems package (MAL-2026-17793) that steals credentials and exfiltrates sensitive data (malicious version 0.9.1). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in perp-funding-rates (RubyGems)

MAL-2026-17793
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
gem uninstall perp-funding-rates

What this malware does

The gem's native-extension script ext/perp_funding_rates/extconf.rb contains no real build logic: it declares create_makefile('bitcoin_rpc_lite_native') but ships no C/C++/Rust sources, and the gemspec/library name (perp-funding-rates / PerpFundingRates) does not match the README (bitcoin-rpc-lite) — the extension exists solely to execute code at install time. During gem install, extconf.rb base64-decodes a Ruby payload and eval()s it inside a double-forked, detached, delayed child process. The decoded payload opens a TCP socket to the hardcoded bare-IP C2 at 45.138.12.177:8089 and bridges it to /bin/sh, giving the operator an interactive shell on the installer's machine. Execution is gated by sandbox/CI/user/path/uptime heuristics and only triggers when developer-signal files such as ~/.ssh, ~/.gem/credentials, ~/.gitconfig, ~/.npmrc, or ~/.bundle are present on the host, targeting developer workstations and build systems. The base64+eval obfuscation, 20-40 minute sleep before dial-out, double-fork detachment, and cloned-identity cover story are consistent with a targeted developer-compromise dropper, not a legitimate native build.

The OpenSSF Package Analysis project identified 'perp-funding-rates' @ 0.9.1 (rubygems) as malicious.

It is considered malicious because:

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

Malicious versions

1 flagged
0.9.1

Indicators of compromise (SHA-256)

123418539e0264e9d58c8b51976723aff3eceec10520c231d7bc847edd51d691
0ce92e6f21307b92f509ec9ac926330b908f989a4fef9078a51f3557790c8167

Detection & response playbook

Credential / info stealer
  1. Find it

    Search your lockfiles and build artifacts for perp-funding-rates (version 0.9.1).

  2. If you installed it — respond

    perp-funding-rates is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.

  3. Did it already run?

    If perp-funding-rates was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.

Frequently asked questions

No. perp-funding-rates on RubyGems has been identified as a malicious package (version 0.9.1 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-021364

References

Credits

  • Amazon Inspector · finder
  • OpenSSF: Package Analysis · finder

Detect & block this

O3 blocks perp-funding-rates-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

perp-funding-rates (RubyGems) malicious package — MAL-2026-17793 | O3 Security