The sol-mint-utils RubyGem version 0.9.1 contains malicious code that executes during installation. It runs a base64-decoded Ruby payload in a forked process, which opens a reverse shell to a hardcoded IP address, allowing remote command execution. The payload includes anti-analysis checks to avoid detection in CI environments, sandboxes, or short uptime systems, and only activates if developer artifacts are present on the host.
The bitcoin-rpc-lite RubyGem version 1.0.0 and 1.0.3 contains malicious code in its native extension build script extconf.rb. This script executes automatically during gem installation and, after evasion checks, opens a reverse shell to a hardcoded attacker IP address, allowing remote code execution. The malicious payload is concealed via Base64 encoding and delayed execution to evade detection in short-lived environments.
The RubyGems package 'web3-eth-utils' version 1.0.0 and 1.0.3 contains malicious code that executes during gem installation. The native extension script performs environment checks to evade sandbox and CI environments, then decodes and executes a Ruby payload that establishes a persistent reverse shell to a remote IP address. The package is a typosquat lure mimicking legitimate web3/eth ecosystem packages, with the actual malicious behavior hidden in the install-time hook.
The RubyGems package 'btc-wallet-tools' version 1.0.0 and 1.0.3 contains malicious code in its native extension script 'ext/req_throttle_mini/extconf.rb'. This script executes during gem installation and, after performing environment checks to evade analysis, decodes and runs a Base64-encoded Ruby payload that opens a reverse shell to a remote attacker. The reverse shell connects to IP 45.138.12.177 on TCP port 8090, providing the attacker with remote shell access to the host. The malicious behavior is concealed by delaying execution and checking for developer artifacts, making detection difficult during automated scans.
The RubyGems package 'wallet-crypto-utils' version 1.0.0 and 1.0.3 contains malicious code in its native extension script that executes during gem installation. The code performs environment checks to evade sandbox and CI environments, then decodes and executes a payload that opens a reverse shell to a remote IP address. This allows an attacker to gain interactive shell access to the developer's machine, potentially compromising sensitive credentials and developer artifacts.
The RubyGems package 'crypto-mnemonic-tools' version 1.0.0 and 1.0.3 contains a malicious native extension script that executes during gem installation. The script performs environment checks to avoid CI and sandbox environments, then after a delay, opens a reverse shell to a remote IP address, providing an attacker interactive shell access on the victim's machine. The malicious behavior is hidden behind a decoy Ruby library and uses a double-forked daemon process to evade detection.
The RubyGems package 'eth-keystore-utils' version 1.0.0 and 1.0.3 contains a malicious native extension script that executes a hidden payload during gem installation. The payload establishes a persistent reverse shell to a hardcoded IP address, allowing remote command execution. The malicious code evades detection by checking for CI environments, sandbox indicators, and the presence of developer secrets before activating. The package was published on 2026-10-05 and targets Ethereum developers likely to have sensitive wallet and credential files.
The RubyGems package 'eth-address-utils' version 1.0.0 and 1.0.3 contains a malicious native extension script that executes a hidden reverse shell payload during installation. The payload activates only on developer workstations, avoiding CI environments and sandboxes, and connects to a remote attacker-controlled server to provide full remote code execution under the installing user's privileges.
A use-after-free vulnerability exists in the sqlite3-ruby gem when defining aggregate functions with two or more arguments evaluated over TEXT or BLOB columns. This can cause the Ruby objects holding arguments to be freed prematurely during garbage collection, leading to incorrect objects being passed to the aggregate's step method or a process crash. The vulnerability affects Mailcatcher versions from 0.8.1 up to but not including 0.11.0. The maintainers rate this as medium severity with a CVSS 4.0 score of 6.3. The issue is fixed in sqlite3 gem version 2.9.6 or later.
rubyzip versions prior to 3.4.0 have a path traversal vulnerability in the Zip::Entry#extract method. This flaw allows crafted archive entries with relative paths (e.g., ../upload_backup/owned.sh) to escape the intended extraction directory and write files to sibling directories sharing the destination prefix. The vulnerability is fixed in version 3.4.0.
Kobako versions 0.1.0 through 0.9.0 contain a critical sandbox escape vulnerability allowing guest mruby scripts to execute arbitrary Ruby code in the host process. This occurs because the transport dispatcher uses `public_send` on bound Service objects without restricting accessible methods, enabling invocation of dangerous reflection methods like `send(:eval, ...)`. The flaw permits complete remote code execution in the host, breaking the sandbox isolation. The issue is fixed in version 0.9.1 by blocking methods owned by core Ruby modules such as Kernel and Object. Until upgrading, no workaround exists other than not binding host Service objects to untrusted scripts.
Ruby JSON is a JSON implementation for Ruby. From 2.20.0 until 2.21.2, Ruby's JSON native C extension clears the consumed JSON::ResumableParser input buffer but leaves state.start, state.cursor, and state.end pointing into released storage. When partial_value reconstructs an incomplete object containing duplicate keys, the duplicate-key warning path calls cursor_position, which dereferences those stale pointers. This results in a heap-use-after-free and can terminate the Ruby process. An attacker who can supply JSON stream data to an application using JSON::ResumableParser may cause process termination when the application calls partial_value on incomplete attacker-controlled input containing duplicate object keys. This issue has been fixed in version 2.21.2.
Savon is a Ruby SOAP client. From 0.9.8 until 2.17.2, Savon::Model .all_operations interpolates attacker-controlled WSDL operation names into Ruby source passed to module_eval, allowing Ruby code execution in the application process. This issue is fixed in version 2.17.2.
A vulnerability in Active Storage's image variant processing using libvips allows unauthenticated attackers to read arbitrary files on the server, potentially exposing sensitive environment secrets. This exposure can lead to remote code execution or lateral movement if secrets like secret_key_base or external credentials are compromised. The issue arises because Active Storage did not disable unsafe 'unfuzzed' libvips operations, which can be triggered by crafted file uploads. Fixed versions of Active Storage and libvips (>= 8.13) are available, and secrets must be rotated if exposure is suspected.
Active Record Tenanted versions prior to 0.7.0 contain a vulnerability in the override of Active Storage's DiskService#path_for method. This vulnerability allows path traversal by not validating that the resolved filesystem path remains within the storage root directory. If an attacker can supply a blob key with path traversal sequences, they could potentially read, write, or delete arbitrary files on the server. The issue arises when untrusted user input is used as blob keys, which are expected to be trusted strings. The vulnerability has a low severity rating and no known exploits in the wild. Upgrading to version 0.7.0 or later mitigates the issue.
A possible cross-site scripting (XSS) vulnerability exists in rails-html-sanitizer versions 1.0.3 through before 1.7.1 when configured to allow certain SVG reference elements such as <use> or <feImage>. The vulnerability arises because the sanitizer restricts local references only on the xlink:href attribute but not on the plain href attribute, which browsers accept per the SVG 2 specification. This can allow external SVG content or images to be loaded and potentially execute scripts in the context of the sanitized document. Applications using the default sanitizer configuration are not affected because these SVG elements are not allowed by default.
Loofah's allowed_uri? method fails to detect javascript: or vbscript: URIs when the scheme is split by numeric character references without trailing semicolons. Browsers decode these references and execute the URI, but allowed_uri? incorrectly marks them as safe. This affects callers that validate user-controlled URLs with allowed_uri? and then render them into browser-interpreted URI attributes, potentially enabling cross-site scripting (XSS). The default sanitize() method is not affected. The issue is fixed in Loofah version 2.25.2.
Loofah's HTML5 sanitizer did not restrict the SVG plain href attribute on certain elements, allowing references to arbitrary external documents. This bypasses the intended local-reference restriction applied only to the deprecated xlink:href attribute. The vulnerability affects applications sanitizing user-supplied SVG with Loofah versions prior to 2.25.2. Exploitation could lead to loading and rendering external SVG content with potential script execution in the context of the sanitized document or tracking via external images. Modern browsers limit cross-origin fetches, reducing but not eliminating risk. Upgrading to Loofah 2.25.2 or later mitigates this issue.
A denial of service vulnerability exists in websocket-driver Ruby library versions prior to 0.8.2. When used to implement a WebSocket server, a malformed Host header can cause the server to crash due to an uncaught URI::InvalidURIError exception. This issue is patched in version 0.8.2 by handling the exception and rejecting invalid requests.
A cross-site scripting (XSS) vulnerability exists in the view_component Ruby on Rails framework versions from 4.0.0 up to but not including 4.12.0. The issue arises because ViewComponent::Base#around_render can return HTML-unsafe strings that bypass normal escaping, and ViewComponent::Collection#render_in can mark combined output as safe, potentially exposing user-controlled data. This vulnerability is fixed in version 4.12.0.