Skip to main content

OpenWrt uhttpd CVE-2026-55612

LOW
HTTP Request/Response Smuggling (CWE-444)
2026-10-30 security-advisories@github.com
3.7
CVSS 3.1 · 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 chunked POST with oversized chunk-length line
  3. Exploit
    Embed complete HTTP request in body bytes
  4. Execution
    Server resets state and reparses body
  5. Impact
    Smuggled request processed, boundaries desynchronized

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 the uhttpd instance to accept HTTP keep-alive (persistent) connections and to process chunked transfer-encoding POST bodies, which is default behavior in affected unpatched repository snapshots. The attacker must send a chunked POST containing a valid initial chunk and then an invalid chunk-length line whose value exceeds INT_MAX (e.g. hexadecimal 80000000) to trigger the invalid-chunk branch in client_poll_post_data(), with a byte-aligned complete second HTTP request embedded in the remaining body. No authentication is needed (CVSS PR:N). Limiting factors: AC:H reflects that the attacker must precisely frame the embedded request so it aligns as a clean second request after the state reset; and in practice uhttpd commonly serves a router/device management interface that is not internet-exposed by default, so real-world reach is often confined to the LAN or to deployments where uhttpd shares a connection path with a proxy or cache. Affected: unpatched snapshots before the fix commits; fixed by setting request.connection_close on the invalid-chunk path.

Impact

Signals conflict sharply and must be reconciled before prioritization. The supplied NVD CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N) yields only 3.7 (Low) and treats the flaw as a network-reachable, unauthenticated issue of high attack complexity with limited integrity impact and no confidentiality or availability impact; the GitHub Security Advisory (GHSA-p55c-rmhc-qfm5), by contrast, self-rates the same bug as High (~8.1) - a large, unresolved discrepancy that security teams should note rather than treat as settled. The vuln.today decision label is 'monitor', consistent with the low NVD score and with the absence of CISA KEV listing and any supplied EPSS probability (both EPSS and KEV data are simply not provided in the input, so exploitation likelihood cannot be quantified from these sources). There is no SSVC decision content beyond the 'monitor' label. On exploit maturity: the GHSA advisory contains concrete reproduction steps and a mechanism-level description, so a public PoC reference exists, but the input does not mark it as confirmed working exploit code - treat it as a documented technique, not a verified weaponized exploit. Net read: this is a genuine request-smuggling/desync defect with a clear root cause and confirmed fix, but AC:H plus the typical LAN-only exposure of uhttpd's management interface make widespread opportunistic exploitation unlikely; the practical ceiling depends heavily on whether a given uhttpd instance sits behind a shared proxy/cache or serves multiple clients. The NVD-vs-GHSA severity gap is the single most important caveat - do not present either score as authoritative without vendor confirmation.

Exploit ScenarioDerived

A remote attacker opens an HTTP keep-alive connection to an unpatched uhttpd instance and sends a chunked POST whose body contains a valid first chunk followed by an oversized chunk-length line (e.g. 80000000) that trips the invalid-chunk branch; the server clears its chunked/content-length state without draining or closing, then re-parses the attacker's embedded 'GET /target HTTP/1.1' as a second request on the same socket. This yields request-boundary desynchronization and smuggling, which is most impactful when uhttpd shares the connection path with a proxy, cache, or multiple clients. A public PoC reference with reproduction steps exists in the GHSA advisory; it is not verified as standalone working exploit code, and the high attack complexity (AC:H) reflects the precise framing the body must achieve.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.3% 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 uhttpd allows remote attackers to have attacker-supplied body bytes parsed as a second request on the same keep-alive connection when an invalid chunk-length line, such as a value exceeding INT_MAX, causes client_poll_post_data() to reset content_length and transfer_chunked without draining the body or closing the connection. Affected are unpatched uhttpd repository snapshots and builds predating fix commits b78f518478794e16ba3568fc1258e40bf3e8eb3b and 34460b8211d676ef1b9f40d6b775c5e112933690. The assessed vector is AV:N/AC:H/PR:N/UI:N with low confidentiality and integrity impact; exploitation is constrained by the need to align the embedded request and by typical LAN-only exposure, and there is no CISA KEV entry or confirmed working exploit, although the public advisory provides reproduction steps.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed. Apply commits b78f518478794e16ba3568fc1258e40bf3e8eb3b and 34460b8211d676ef1b9f40d6b775c5e112933690, detailed in GHSA-p55c-rmhc-qfm5 at https://github.com/openwrt/uhttpd/security/advisories/GHSA-p55c-rmhc-qfm5; the advisory's fix is to set request.connection_close = true on the invalid-chunk-length path, or to drain all remaining buffered data before allowing keep-alive reuse. Because no tagged release containing the fix is independently confirmed and package data lists the fixed version as not yet patched, deployments that cannot apply the commits should disable HTTP keep-alive on uhttpd or force connection close when a chunk-length line is invalid, accepting reduced connection reuse and possible breakage for clients that send malformed chunked bodies. Limit exposure of the uhttpd management interface to trusted LANs or place it behind a proxy that normalizes chunked framing, since the assessment notes uhttpd is commonly not internet-facing by default. Prioritization should follow the supplied monitor decision label rather than treating this as an emergency.

Affected ProductsAI

Unpatched repository snapshots of OpenWrt uhttpd before fix commits b78f518478794e16ba3568fc1258e40bf3e8eb3b and 34460b8211d676ef1b9f40d6b775c5e112933690 are affected; the advisory package data lists the vulnerable range as versions below 1b624f8f814ed568608d756512892416e0431d77 and states the package is not yet patched in a tagged release. No CPE strings were provided in the input. The vendor advisory is GHSA-p55c-rmhc-qfm5 at https://github.com/openwrt/uhttpd/security/advisories/GHSA-p55c-rmhc-qfm5, and the fixing commits are at https://github.com/openwrt/uhttpd/commit/b78f518478794e16ba3568fc1258e40bf3e8eb3b and https://github.com/openwrt/uhttpd/commit/34460b8211d676ef1b9f40d6b775c5e112933690.

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 parses chunked transfer-encoding in client_poll_post_data() in client.c. When a chunk-size line is invalid, such as a hexadecimal length exceeding INT_MAX (for example 80000000), the function consumes only that line, clears r->content_length and r->transfer_chunked, and does not drain the buffered body or set request.connection_close. The completion check therefore treats the chunked POST as finished, keep-alive processing returns to CLIENT_STATE_INIT, and leftover body bytes that are byte-aligned as a complete HTTP request are parsed and processed as another request on the same connection. The flaw class is CWE-444, inconsistent interpretation of HTTP requests leading to request smuggling and request-boundary desynchronization. The issue was introduced by commit b7c85a28 on 2013-01-03 and is fixed by commits b78f518478794e16ba3568fc1258e40bf3e8eb3b and 34460b8211d676ef1b9f40d6b775c5e112933690; the latter sets r->connection_close = true on the invalid-chunk path. The assessed AC:H reflects the framing precision needed to align the embedded request, and the trigger depends on keep-alive and chunked POST processing, which the assessment describes as default behavior in affected unpatched snapshots.

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 3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 4.8 MEDIUM

Network-reachable and unauthenticated (AV:N/PR:N); AC:H because the body must be precisely framed to align as a second request; smuggling permits request injection (I:L) and limited response/data exposure (C:L).

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

DescriptionCVE.org

uhttpd is a small HTTP server. In unpatched repository snapshots, client_poll_post_data() in client.c consumes an invalid chunk-length line, such as a size exceeding INT_MAX, then clears r->content_length and r->transfer_chunked without draining the remaining body or setting request.connection_close. The completion check treats the chunked POST as finished and the keep-alive parser returns to CLIENT_STATE_INIT. Attacker-controlled body bytes aligned as a complete HTTP request are then parsed and processed as another request on the same connection, causing HTTP request smuggling and request-boundary desynchronization. Commits b78f518478794e16ba3568fc1258e40bf3e8eb3b and 34460b8211d676ef1b9f40d6b775c5e112933690 patch the issue.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
High
default web server for OpenWrt router/embedded firmware, broad deployment
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 LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
No
Human Impact· derived
High

Priority Score

18
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +18
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