CVE-2026-67181
Received Received - Intake

HTTP Request Smuggling in Rouille Proxy

Vulnerability report for CVE-2026-67181, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-28

Last updated on: 2026-07-28

Assigner: VulnCheck

Description

Rouille 0.3.3 through 3.6.2 contains an HTTP request smuggling vulnerability that allows remote attackers to desynchronize HTTP message boundaries by exploiting improper header forwarding in the proxy implementation. The proxy in src/proxy.rs forwards the client's Transfer-Encoding header to upstream backends unchanged while transmitting a body already de-chunked by tiny_http, enabling CL.TE desynchronization attacks where attackers control where the backend believes the request body ends.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-28
Last Modified
2026-07-28
Generated
2026-07-28
AI Q&A
2026-07-28
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
rouille rouille From 0.3.3 (inc) to 3.6.2 (inc)
theopaid rouille From 0.3.3 (inc) to 3.6.2 (inc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-444 The product acts as an intermediary HTTP agent (such as a proxy or firewall) in the data flow between two entities such as a client and server, but it does not interpret malformed HTTP requests or responses in ways that are consistent with how the messages will be processed by those entities that are at the ultimate destination.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-67181 is an HTTP request smuggling vulnerability in the rouille Rust web framework's proxy module. The proxy forwards the client's Transfer-Encoding header to the backend without modification while the request body is already de-chunked by tiny_http. This allows attackers to craft requests where the body contains a second HTTP request, which the backend may process as a separate request. The issue affects versions 0.3.3 through 3.6.2 of rouille.

The root cause is tiny_http's handling of Transfer-Encoding, which discards Content-Length and always applies chunked decoding when the header is present. The proxy forwards all headers except Connection and writes the decoded body directly, leaving the backend to parse the smuggled request.

Detection Guidance

To detect this vulnerability, monitor for HTTP request smuggling indicators such as inconsistent Content-Length and Transfer-Encoding headers. Use tools like Burp Suite or curl to send crafted requests with conflicting headers and observe backend responses for desynchronization. Check proxy logs for malformed requests or unexpected request parsing.

Impact Analysis

This vulnerability can lead to desynchronization between what the client sent, what rouille observed, and what the backend processed. It may cause incorrect request body logging, bypass of security controls, or unauthorized requests if the backend pipelines requests or uses connection pooling. Attackers can manipulate where the backend interprets the end of the request body.

Mitigation Strategies

Immediately update or patch the rouille proxy module to skip forwarding Transfer-Encoding, Content-Length, and Connection headers. If no patch is available, disable the proxy functionality or switch to an alternative framework. Monitor network traffic for signs of exploitation attempts.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-67181. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart