Skip to main content

Ruby WEBrick CVE-2026-38969

HIGH
HTTP Request/Response Smuggling (CWE-444)
2026-07-02 cve@mitre.org
7.5
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify proxy-fronted WEBrick target
  2. Delivery
    Craft chunked request with trailer Content-Length
  3. Exploit
    Front-end and WEBrick disagree on length
  4. Execution
    Smuggle prefix into next connection request
  5. Persist
    Poison routing / capture victim response
  6. Impact
    Disclose or manipulate other users' requests

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service HTTP request consistency
Exploitation Conditions

Exploitation requires that WEBrick (<=1.9.2) process an HTTP request using chunked transfer encoding whose trailer section carries a Content-Length field, which WEBrick then reparses into canonical request state. The practical prerequisite is a request-smuggling topology: WEBrick deployed behind (or in front of) another HTTP component - reverse proxy, load balancer, CDN, or cache - that computes message length from the initial headers and therefore disagrees with WEBrick's trailer-derived length. Limiting factors: a single WEBrick instance with no differing intermediary and no connection reuse across trust boundaries is not meaningfully exploitable for smuggling; no authentication is required (PR:N) and no user interaction is needed, but success depends on the specific front-end/back-end parsing mismatch rather than any WEBrick default setting alone.

Impact

The CVSS 3.1 base is 7.5 (AV:N/AC:L/PR:N/UI:N/C:N/I:H/A:N) - remotely reachable, low complexity, no authentication, with impact confined to integrity, which is consistent with a smuggling primitive that corrupts request state rather than reading memory or crashing the service. SSVC signals partial technical impact, Automatable:yes, and exploitation:poc, indicating a working proof of concept and scriptable exploitation. However EPSS is only 0.16% (6th percentile) and there is no CISA KEV listing, so widespread opportunistic exploitation is not currently evidenced - this reads as a real but not yet mass-exploited issue whose practical severity is highly deployment-dependent: exploitation requires a specific proxy/back-end topology where an upstream intermediary parses the request differently than WEBrick. As a standalone origin server with no desyncing front-end, real-world impact is materially lower than the 7.5 suggests.

Exploit ScenarioDerived

An attacker sends a single crafted HTTP request through a front-end proxy to a WEBrick back end, using chunked transfer encoding with a trailer-embedded Content-Length that WEBrick honors but the proxy ignores. The length disagreement causes a prefix of the attacker's payload to be treated as the start of the next victim's request on the reused connection, letting the attacker prepend a smuggled request that poisons routing or captures another user's response. A proof-of-concept is referenced by the SSVC poc status, and the low attack complexity means the request can be delivered without special timing.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 06, 2026

HTTP request smuggling in Ruby's WEBrick HTTP server through v1.9.2 allows remote attackers to desynchronize front-end/back-end request parsing by exploiting how WEBrick reparses a Content-Length value supplied in chunked trailers back into the canonical request state. Any deployment fronting WEBrick with a proxy, load balancer, or CDN that disagrees on message length can have requests smuggled past it, enabling request routing manipulation and information disclosure. Publicly available exploit code exists (SSVC exploitation status: poc), though EPSS remains low at 0.16% and it is not on CISA KEV.

RemediationAI

Upstream fix available (PR/commit) via https://github.com/ruby/webrick/pull/199; a released, tagged patched version was not provided in the input and is not independently confirmed, so upgrade the webrick gem to the first release incorporating PR #199 once published (track the fix reference and https://github.com/ruby/webrick/issues/198). As a compensating control until patched, avoid exposing WEBrick directly behind a differing HTTP intermediary; if a front-end proxy/CDN is in use, configure it to reject requests that combine Transfer-Encoding: chunked with trailer fields, strip HTTP trailers, and normalize/deny ambiguous Content-Length so the trailer value cannot reach WEBrick (side effect: legitimate trailer-dependent clients, e.g. some gRPC-web or streaming checksums, will break). Where feasible, replace WEBrick with a hardened production server (e.g. Puma) for internet-facing workloads, since WEBrick is primarily intended for development. Review the vuldb advisory at https://vuldb.com/vuln/376033 for tracking.

Affected ProductsAI

Ruby WEBrick HTTP server library, all versions up to and including 1.9.2 ('through v1.9.2'), as reported via cve@mitre.org and tracked at https://github.com/ruby/webrick/issues/198 with a fix in https://github.com/ruby/webrick/pull/199. A third-party advisory is available at https://vuldb.com/vuln/376033. No CPE strings were provided in the source data, so exact packaged/gem version enumeration beyond the '<=1.9.2' range is not independently confirmed here.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

WEBrick is the pure-Ruby HTTP server library historically bundled with the Ruby standard library and commonly used for local development, testing, and lightweight embedded services. The flaw is a classic CWE-444 (Inconsistent Interpretation of HTTP Requests / request smuggling): when a request uses chunked transfer encoding, the trailer section can carry header-like fields, and WEBrick incorrectly folds a trailer-supplied Content-Length into the authoritative/canonical request metadata after the body has already been framed. Because HTTP intermediaries determine message boundaries from the initial headers, a second component that honors the trailer-derived Content-Length will disagree on where one request ends and the next begins, allowing a smuggled request to be injected into another connection's stream.

Know when Canonical gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (mitre) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
vuln.today AI 7.5 HIGH

Remote, unauthenticated, low-complexity smuggling with no user interaction; impact is integrity-only (request desync/injection), no direct confidentiality or availability loss, scope unchanged.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
SUSE 7.3 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

2
CVSS changed
Jul 06, 2026 - 16:22 NVD
7.5 (HIGH)
CVE Published
Jul 02, 2026 - 21:16 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

ruby webrick through v1.9.2 WEBrick reparses trailer Content-Length into canonical request state, enabling request smuggling.

Executive ViewAI

Why It Matters

Ruby WEBrick HTTP server versions through 1.9.2 contain an HTTP request smuggling vulnerability (CVE-2026-38969) that allows remote attackers to bypass proxy and load balancer security controls by desynchronizing request parsing. Organizations deploying WEBrick behind proxies, CDNs, or load balancers risk unauthorized request routing and sensitive data disclosure through smuggled requests.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Upgrade upstream proxies/load balancers to latest versions with strict HTTP/1.1 compliance; (2) Disable trailer header processing in WEBrick via configuration; (3) Implement WAF rules rejecting suspicious Content-Length discrepancies; (4) Enforce network access controls limiting direct WEBrick exposure; (5) Monitor HTTP traffic logs for smuggling indicators (mismatched content lengths, duplicate request patterns).

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
Ruby stdlib dev/test HTTP server, rarely internet-facing in production
Data Quality
6 sources
Confidence: High
NVD CVE.org EPSS Vulnrichment MSRC Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

HTTP request smuggling exploits inconsistencies in how front-end and back-end servers parse HTTP message boundaries.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2014-6271 CRITICAL POC
9.8 Sep 24

GNU Bash through 4.3 processes trailing strings after function definitions in the values of environment variables, which

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2016-3714 HIGH POC
8.4 May 05

The (1) EPHEMERAL, (2) HTTPS, (3) MVG, (4) MSL, (5) TEXT, (6) SHOW, (7) WIN, and (8) PLT coders in ImageMagick before 6.

CVE-2017-12617 HIGH POC
8.1 Oct 04

When running Apache Tomcat versions 9.0.0.M1 to 9.0.0, 8.5.0 to 8.5.22, 8.0.0.RC1 to 8.0.46 and 7.0.0 to 7.0.81 with HTT

CVE-2016-8735 CRITICAL POC
9.8 Apr 06

Remote code execution is possible with Apache Tomcat before 6.0.48, 7.x before 7.0.73, 8.x before 8.0.39, 8.5.x before 8

CVE-2014-7169 CRITICAL POC
9.8 Sep 25

GNU Bash through 4.3 bash43-025 processes trailing strings after certain malformed function definitions in the values of

CVE-2014-0160 HIGH POC
7.5 Apr 07

The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.1 before 1.0.1g do not properly handle Heartbeat Extension packe

CVE-2016-5195 HIGH POC
7.0 Nov 10

Race condition in mm/gup.c in the Linux kernel 2.x through 4.x before 4.8.3 allows local users to gain privileges by lev

CVE-2013-2423 LOW POC
3.7 Apr 17

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 17 and earlier, and

CVE-2023-4911 HIGH POC
7.8 Oct 03

Local privilege escalation in the GNU C Library (glibc) dynamic loader ld.so allows unprivileged local users on affected

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy