Description
uhttpd is a small HTTP server. In unpatched repository snapshots, `uh_ubus_data_send()` in `ubus.c` can desynchronize HTTP request boundaries when a `POST /ubus` JSON body arrives in multiple TCP segments. An initial segment completing a JSON object sets `du->jsobj`; a later segment takes the existing-object parse-error path and returns zero bytes consumed. The caller neither drains the remaining declared `Content-Length` nor sets `connection_close`. An HTTP request embedded in the unread body suffix is consequently processed as a new request on the same keep-alive connection. The reported reproducer returned a JSON-RPC parse error followed by a second HTTP response. This application-layer body-handler flaw is distinct from Transfer-Encoding header case handling and chunk-length state reset, and affects deployments enabling ubus, including the default OpenWrt configuration and potential proxy/CDN deployments. Repository patches 7b1bec45826bd78c8afc993435bdc0f1df2fe399 and b2285de129b9adc8b12f84f9a27c16c21f2b57a5 address this issue.
Published: 2026-10-30
Score: 6.9 Medium
EPSS: n/a
KEV: No
Impact: HTTP request smuggling
Action: Immediate Patch
AI Analysis

Impact

uhttpd is a lightweight HTTP server used in OpenWrt. In unpatched versions, a JSON body sent to /ubus in a POST request can be fragmented across TCP segments. The first segment completes the JSON parsing, but a subsequent segment triggers a parse‑error path that consumes zero bytes. Because the remaining declared Content‑Length is not drained and the connection is not closed, the unread bytes are interpreted as a new HTTP request on the same persistent connection. This request smuggling flaw therefore allows an attacker to inject a second request into the transaction stream. The CVE description does not explicitly state the consequences, so the possibility of executing unintended commands or causing a denial‑of‑service is inferred from the nature of request smuggling vulnerabilities.

Affected Systems

The vulnerability affects OpenWrt's uhttpd component whenever the ubus interface is enabled, which is the default in many builds. It also impacts deployments that use uhttpd as a proxy or CDN edge where ubus is exposed. No explicit version numbers are provided; the flaw exists in unpatched repository snapshots and is fixed by the referenced commits.

Risk and Exploitability

The CVSS score is 6.9, indicating medium severity. EPSS data is not available and the vulnerability is not listed in CISA KEV. Based on the description, the attack vector is network‑based, requiring an attacker to send crafted POST /ubus requests that are split across multiple TCP segments over an HTTP/1.1 keep‑alive connection. While exploitation may not be trivial, the medium CVSS and the ability to manipulate request boundaries present a realistic risk for exposed ubus services.

Generated by OpenCVE AI on October 30, 2026 at 23:53 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the security patches from commits 7b1bec45826bd78c8afc993435bdc0f1df2fe399 and b2285de129b9adc8b12f84f9a27c16c21f2b57a5.
  • Disable the ubus interface when it is not needed, or restrict external access to the /ubus endpoint with firewall rules.
  • Temporarily disable HTTP keep‑alive on the server to prevent request smuggling if patching cannot be applied immediately.

Generated by OpenCVE AI on October 30, 2026 at 23:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 30 Oct 2026 22:00:00 +0000

Type Values Removed Values Added
Description uhttpd is a small HTTP server. In unpatched repository snapshots, `uh_ubus_data_send()` in `ubus.c` can desynchronize HTTP request boundaries when a `POST /ubus` JSON body arrives in multiple TCP segments. An initial segment completing a JSON object sets `du->jsobj`; a later segment takes the existing-object parse-error path and returns zero bytes consumed. The caller neither drains the remaining declared `Content-Length` nor sets `connection_close`. An HTTP request embedded in the unread body suffix is consequently processed as a new request on the same keep-alive connection. The reported reproducer returned a JSON-RPC parse error followed by a second HTTP response. This application-layer body-handler flaw is distinct from Transfer-Encoding header case handling and chunk-length state reset, and affects deployments enabling ubus, including the default OpenWrt configuration and potential proxy/CDN deployments. Repository patches 7b1bec45826bd78c8afc993435bdc0f1df2fe399 and b2285de129b9adc8b12f84f9a27c16c21f2b57a5 address this issue.
Title uhttpd: HTTP request smuggling via ubus POST body parse-error desync
Weaknesses CWE-444
References
Metrics cvssV4_0

{'score': 6.9, 'vector': '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'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-30T21:57:19.199Z

Reserved: 2026-06-16T23:31:22.445Z

Link: CVE-2026-55613

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-30T22:16:55.107

Modified: 2026-10-30T22:16:55.107

Link: CVE-2026-55613

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-31T00:00:27Z

Weaknesses
  • CWE-444

    Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')