CVE-2026-55614
MediumCVSS 6.9Exploitation Probability (EPSS)
Low risk34th percentile - higher than 34% of all known CVEs
Summary
In unpatched uhttpd repository snapshots, `client_parse_header()` compares the `Transfer-Encoding` value to `chunked` case-sensitively, although transfer-coding tokens are case-insensitive. A mixed-case token is accepted without enabling chunked handling, allowing HTTP request smuggling on keep-alive connections.
Risk Assessment
HTTP request smuggling and request boundary desynchronization are possible, potentially bypassing security controls or poisoning responses. The risk affects uhttpd servers using keep-alive connections.
Recommendation
Apply the patches from commits ae015e099986ceace44975cb69629841a2d58d37 and 6641b050e5f7c7fd9ae92e8e119d6d6dfc6e9837, or upgrade to a version containing these changes.
Other vulnerabilities in uhttpd
See all- CVE-2026-63586Critical
The web-based management interface uses a modified uhttpd server with CGI shell scripts. The HTTP Basic Authentication username, taken directly from the Authorization header without sanitization, is inserted into a shell command string executed via the system() function. By submitting a specially crafted username containing shell metacharacters, an unauthenticated attacker with network access to the device can escape the command context and execute arbitrary commands with root privileges.
- CVE-2026-55613Medium
In unpatched uhttpd repository snapshots, `uh_ubus_data_send()` can desynchronize HTTP request boundaries when a `POST /ubus` JSON body arrives in multiple TCP segments. The unread body suffix is then processed as a new request on the same keep-alive connection.
- CVE-2026-55612Low
uhttpd is a small HTTP server. In unpatched repository snapshots, client_poll_post_data() in client.c consumes an invalid chunk-length line (e.g., a size exceeding INT_MAX), then clears r->content_length and r->transfer_chunked without draining the remaining body or setting request.connection_close. 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.
Original NVD description (English source)
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.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

