Skip to main content

uhttpd CVE-2026-55614

MEDIUM
HTTP Request/Response Smuggling (CWE-444)
2026-10-30 security-advisories@github.com
6.9
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Open keep-alive connection to uhttpd
  2. Delivery
    Send POST with Transfer-Encoding: Chunked
  3. Exploit
    Embed smuggled request in unread body
  4. Execution
    Server reparses body bytes as new request
  5. Impact
    Desynchronize connection / smuggle request

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 a keep-alive (persistent) connection on which the attacker sends a Transfer-Encoding header with a mixed-case transfer-coding token (e.g. 'Chunked') plus a chunked-shaped body and a pipelined follow-on request. No non-default server configuration, authentication, or user interaction is needed - the flaw is in uhttpd's default header-parsing path, so default deployments that accept POST bodies over keep-alive are affected. Limiting factors: the attacker must control raw request framing (a direct client, not forced through a normalizing proxy that rewrites the header), the connection must be keep-alive rather than Connection: close, and the resulting impact is request smuggling / boundary desynchronization (integrity) rather than direct disclosure or denial of service per the supplied vector.

Impact

This is a genuine but moderate-priority issue rather than a drop-everything emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes a remote, unauthenticated, low-complexity flaw with no special attack requirements, and the source diff confirms the mechanism precisely: client_parse_header() compares the Transfer-Encoding value with case-sensitive strcmp(val, "chunked"), so a mixed-case 'Chunked' token bypasses chunked framing and leaves the POST body unread on a keep-alive connection. The official CVSS 4.0 score is 6.9 with impact limited to VI:L (low integrity, no confidentiality or availability), whereas the GHSA advisory estimates CVSS 3.1 ~8.1 (High) - these two figures conflict and should be treated as a known discrepancy; the lower NVD-style 4.0 figure is the one tied to the supplied vector. No EPSS score was provided and the input shows no CISA KEV listing, so there is no evidence of active exploitation; the vuln.today decision label is 'this_month', consistent with a serious-but-not-urgent classification. A detailed, reproducible PoC narrative is published in the GHSA advisory, which raises likelihood of exploitation above a purely theoretical flaw. Net: prioritize patching within the normal monthly cycle given the easy remote trigger and the broad OpenWrt footprint, but the impact is request desynchronization rather than direct code execution or data compromise.

Exploit ScenarioDerived

An attacker opens a single keep-alive TCP connection to a uhttpd server and sends a POST carrying 'Transfer-Encoding: Chunked' (capital C) with a chunked body, immediately followed by a pipelined request. Because the mixed-case token is not matched as chunked, r->transfer_chunked stays false, the body is never consumed, and the server reparses the leftover body bytes as a second HTTP request - enabling request smuggling and connection boundary desync. A public PoC reference with reproduction steps exists in the GHSA advisory, though it is not verified as working exploit code; the low attack complexity and lack of required privileges or user interaction make the trigger straightforward.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 30, 2026

HTTP request smuggling in OpenWrt's uhttpd affects unpatched repository snapshots that predate the upstream fixes, allowing an unauthenticated remote attacker who controls raw request framing over a keep-alive connection to send a mixed-case Transfer-Encoding token such as 'Chunked' and have the chunked POST body left unread, so leftover bytes are parsed as a follow-on request. The result is boundary desynchronization with integrity impact rather than direct confidentiality or availability loss; default deployments that accept POST bodies over persistent connections are in scope. No CISA KEV listing or confirmed working exploit code is identified in the supplied data, although the upstream advisory includes reproduction steps; the supplied CVSS 4.0 score is 6.9 and the assessed CVSS 3.1 base is 5.3, aligning with a this-month priority.

RemediationAI

Apply both upstream fixes, commits ae015e099986ceace44975cb69629841a2d58d37 and 6641b050e5f7c7fd9ae92e8e119d6d6dfc6e9837; the latter changes the Transfer-Encoding comparison to strcasecmp and rejects unsupported transfer codings with 501 Not Implemented. The advisory currently states 'fixed in: not yet patched,' so no patched release version is confirmed in the provided data-build or backport the commits into the deployed uhttpd and verify that mixed-case 'Chunked' requests are rejected or handled as chunked. No vendor-documented workaround is provided; because exploitation requires the attacker to control raw framing on a keep-alive connection, restricting direct untrusted access or placing a normalizing front-end proxy that rejects or normalizes mixed-case Transfer-Encoding reduces exposure but does not substitute for the upstream fix.

Affected ProductsAI

The affected product is OpenWrt uhttpd, specifically unpatched repository snapshots in which client.c still uses strcmp for the Transfer-Encoding value. The GitHub advisory records the vulnerable range as versions before 1b624f8f814ed568608d756512892416e0431d77 and lists 'fixed in: not yet patched'; the upstream fixes are commits ae015e099986ceace44975cb69629841a2d58d37 and 6641b050e5f7c7fd9ae92e8e119d6d6dfc6e9837, and no tagged release version is confirmed in the supplied data. See https://github.com/openwrt/uhttpd/security/advisories/GHSA-mcfg-c4r7-pjpf.

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

uhttpd is OpenWrt's small HTTP server. In client_parse_header() in client.c, header names are lowercased, but the Transfer-Encoding value was compared with case-sensitive strcmp(val, 'chunked'). RFC 9112 section 6.1 defines transfer-coding tokens as case-insensitive, so a value like 'Chunked' was accepted without setting r->transfer_chunked; the unread body on a keep-alive connection could then be interpreted as the next request. The upstream fix uses strcasecmp and, for any coding it does not implement, returns 501 instead of silently ignoring it, closing the CWE-444 inconsistent-interpretation gap. The advisory's reproduction uses a POST with 'Transfer-Encoding: Chunked', a chunked body, and a pipelined GET on one keep-alive TCP connection.

Know when Openwrt 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 (github) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Remote, no privileges or interaction, simple mixed-case header trigger (AV:N/AC:L/PR:N/UI:N); impact is request smuggling affecting request integrity only, so I:L with C:N/A:N and scope unchanged.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

uhttpd is a small HTTP server. In unpatched repository snapshots, client_parse_header() in client.c lowercases header names but compares the Transfer-Encoding value to chunked using case-sensitive strcmp. A mixed-case transfer-coding token is accepted without enabling r->transfer_chunked, despite transfer-coding tokens being case-insensitive. On a keep-alive connection, the chunked POST body is left unread and request-shaped body bytes are parsed as another HTTP request, permitting HTTP request smuggling and boundary desynchronization. Commits ae015e099986ceace44975cb69629841a2d58d37 and 6641b050e5f7c7fd9ae92e8e119d6d6dfc6e9837 patch the issue.

Threat Intelligence Overview

EPSS Score
0.4%
Top 66% exploitable
Prevalence
High
default web server on OpenWrt, deployed across many embedded routers/devices
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
High

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
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-2024-20017 CRITICAL POC
9.8 Mar 04

In wlan service, there is a possible out of bounds write due to improper input validation. Rated critical severity (CVSS

CVE-2026-61876 CRITICAL POC
9.4 Jul 12

Stored cross-site scripting in OpenWrt's LuCI web interface lets an adjacent-network attacker inject executable HTML/Jav

CVE-2020-7982 HIGH POC
8.1 Mar 16

An issue was discovered in OpenWrt 18.06.0 to 18.06.6 and 19.07.0, and LEDE 17.01.0 to 17.01.7. Rated high severity (CVS

CVE-2019-15513 HIGH POC
7.5 Aug 23

An issue was discovered in OpenWrt libuci (aka Library for the Unified Configuration Interface) before 15.05.1 as used o

CVE-2018-19630 MEDIUM POC
6.1 Nov 28

cgi_handle_request in uhttpd in OpenWrt through 18.06.1 and LEDE through 17.01 has unauthenticated reflected XSS via the

CVE-2025-20654 CRITICAL
9.8 Apr 07

In wlan service, there is a possible out of bounds write due to an incorrect bounds check. Rated critical severity (CVSS

CVE-2019-5102 MEDIUM POC
5.9 Nov 18

An exploitable information leak vulnerability exists in the ustream-ssl library of OpenWrt, versions 18.06.4 and 15.05.1

CVE-2019-5101 MEDIUM POC
5.9 Nov 18

An exploitable information leak vulnerability exists in the ustream-ssl library of OpenWrt, versions 18.06.4 and 15.05.1

CVE-2025-20674 CRITICAL
9.8 Jun 02

Remote privilege escalation in Android WLAN AP driver via packet injection.

CVE-2025-20683 CRITICAL
9.8 Jul 08

In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es

CVE-2025-20682 CRITICAL
9.8 Jul 08

In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es

CVE-2025-20681 CRITICAL
9.8 Jul 08

In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es

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