CVE-2025-67735: Netty has a CRLF Injection vulnerability in io.netty.handler.codec.http.HttpRequestEncoder
Summary
The io.netty.handler.codec.http.HttpRequestEncoder CRLF injection with the request uri when constructing a request. This leads to request smuggling when HttpRequestEncoder is used without proper sanitization of the uri.
Details
The HttpRequestEncoder simply UTF8 encodes the uri without sanitization (buf.writeByte(SP).writeCharSequence(uriCharSequence, CharsetUtil.UTF8);)
The default implementation of HTTP headers guards against such possibility already with a validator making it impossible with headers.
PoC
Simple reproducer:
java public static void main(String[] args) {
EmbeddedChannel client = new EmbeddedChannel(); client.pipeline().addLast(new HttpClientCodec());
EmbeddedChannel server = new EmbeddedChannel(); server.pipeline().addLast(new HttpServerCodec()); server.pipeline().addLast(new ChannelInboundHandlerAdapter() { @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { System.out.println("Processing msg " + msg); } });
DefaultHttpRequest request = new DefaultHttpRequest( HttpVersion.HTTP11, HttpMethod.GET, "/s1 HTTP/1.1\r\n" + "\r\n" + "POST /s2 HTTP/1.1\r\n" + "content-length: 11\r\n\r\n" + "Hello World" + "GET /s1" ); client.writeAndFlush(request); ByteBuf tmp; while ((tmp = client.readOutbound()) != null) { server.writeInbound(tmp); } }
Impact
Any application / framework using HttpRequestEncoder can be subject to be abused to perform request smuggling using CRLF injection.
Other sources
Netty is an asynchronous, event-driven network application framework. In versions prior to 4.1.129.Final and 4.2.8.Final, the io.netty.handler.codec.http.HttpRequestEncoder has a CRLF injection with the request URI when constructing a request. This leads to request smuggling when HttpRequestEncoder is used without proper sanitization of the URI. Any application / framework using HttpRequestEncoder can be subject to be abused to perform request smuggling using CRLF injection. Versions 4.1.129.Final and 4.2.8.Final fix the issue.
— MITRE
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2025-67735?
CVE-2025-67735 is considered a high severity vulnerability due to the potential for request smuggling.
How do I fix CVE-2025-67735?
To fix CVE-2025-67735, upgrade the affected 'io.netty:netty-codec-http' package to version 4.1.129.Final or 4.2.8.Final.
What causes CVE-2025-67735?
CVE-2025-67735 is caused by CRLF injection in the request URI when using the HttpRequestEncoder without proper sanitization.
Which software versions are affected by CVE-2025-67735?
CVE-2025-67735 affects 'io.netty:netty-codec-http' versions prior to 4.1.129.Final and between 4.2.0.Alpha1 and 4.2.8.Final.
What types of attacks can CVE-2025-67735 lead to?
CVE-2025-67735 can lead to request smuggling attacks, compromising the integrity of HTTP transactions.