Read the docs
TI-2026-66215 Aliases GHSA-q66h-m87m-j2q6

Bitcoinrb Vulnerable to Command injection via RPC

Priority LOW 38CWE-77Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
Code execution
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from GitHub. Impact type from CWE-77.

Summary

### Summary: Remote Code Execution Unsafe handling of request parameters in the RPC HTTP server results in command injection ### Details In lib/bitcoin/rpc/http_server.rb line 30-39, the JSON body of a POST request is parsed into `command` and `args` variables. These values are then passed to `send`, which is used to call an arbitrary class method. However, there is no validation that the provided `command` value is one of the expected RPC methods. This means that an attacker could supply a `command` value such as `system`, and then pass arbitrary system commands into the `args` parameter and achieve remote code execution. ### PoC 1. Start the RPC server 2. Send a request to the RPC server as so: ``` curl -X POST http://127.0.0.1:18443 -H 'Content-Type: application/json' \ -d '{"method":"eval","params":["File.write(\"/tmp/pwned\",\"owned\")"]}' ``` 3. Check the /tmp folder on the machine where the RPC server is being run. If a folder /pwned now exists, the vulnerability is confirmed. ### Impact This vulnerability would impact anyone running the RPC server. The impact is higher for those who are running it publicly exposed to the internet. ### Remediation **Mitigating Factors:** - The RPC server is part of the experimental SPV node feature, which is not documented and has very few users. - The SPV-related features may be removed in future releases. **Resolution:** - Added whitelist validation to allow only RPC methods defined in `RequestHandler`. - Fixed in version 1.12.0.

Why it matters now

Fix Fixed bitcoinrb (RubyGems): 1.12.0

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
—bitcoinrb (RubyGems)before 1.12.01.12.0Patch availableGHSA-q66h-m87m-j2q6
  • bitcoinrb (RubyGems) Vendor— Affected before 1.12.0 Fixed in 1.12.0 Patch available GHSA-q66h-m87m-j2q6

Remediation

  • Fix · GHSA-q66h-m87m-j2q6 bitcoinrb (RubyGems) Fixed in 1.12.0 Advisory →

Timeline

  1. 2026-10-03 Threatist record created from GHSA-q66h-m87m-j2q6

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences