CVE-2026-38969
Description
From CVE.org
ruby webrick through v1.9.2 WEBrick reparses trailer Content-Length into canonical request state, enabling request smuggling. NOTE: the Supplier reports that "The project README states that it is suitable for testing and development, and that its developers do not encourage its use to serve production web applications that may be subject to hostile input. It is not a production web server and is not intended to receive traffic from untrusted sources. Request smuggling is only reachable when WEBrick sits behind a proxy and receives hostile traffic in a production deployment, which is the configuration the project documents as discouraged."
Statement
This CVE has been marked as Rejected by the assigning CNA.
Mitigation
Do not expose WEBrick directly to untrusted network traffic. WEBrick is not designed for production use and should be replaced with a production-grade Ruby application server (e.g., Puma, Unicorn) behind a reverse proxy (e.g., nginx, Apache, HAProxy) that performs its own Content-Length validation and strips or rejects requests with conflicting transfer encoding headers.
A patch is available: https://github.com/ruby/webrick/pull/199
Understanding the Weakness (CWE)
Integrity,Non-Repudiation,Access Control
Technical Impact: Unexpected State; Hide Activities; Bypass Protection Mechanism
An attacker could create HTTP messages to exploit a number of weaknesses including 1) the message can trick the web server to associate a URL with another URL's webpage and caching the contents of the webpage (web cache poisoning attack), 2) the message can be structured to bypass the firewall protection mechanisms and gain unauthorized access to a web application, and 3) the message can invoke a script or a page that returns client credentials (similar to a Cross Site Scripting attack).
Frequently Asked Questions
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.