<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-02T04:35:40.524693+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-hvcg-qmg6-jm4c</id>
    <title>GHSA-hvcg-qmg6-jm4c — Netty: HttpObjectDecoder skips arbitrary initial control characters when only initial CRLF characters are permitted</title>
    <updated>2026-10-02T04:35:40.525669+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Maven: io.netty:netty-codec-http</p>
<p>## Summary</p>
<p>Before reading the first request-line, `HttpObjectDecoder` skips every byte for which
`Character.isISOControl(b)` is `true` (0x00–0x1F and 0x7F) as well as all whitespace.
RFC 9112 §2.2 only asks servers to ignore **empty CRLF lines** preceding the request-line —
a carefully scoped robustness allowance intended to handle HTTP/1.0 POST workarounds.
Silently absorbing NUL bytes, SOH, STX, and other non-CRLF control characters goes
significantly beyond this, and can be exploited for request-boundary confusion in pipelined
or multiplexed transports where a front-end component treats those bytes differently.</p>
<p>## Affected Code</p>
<p>| File | Lines | Role |
|------|-------|------|
| `codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectDecoder.java` | 1298–1313 | `ISO_CONTROL_OR_WHITESPACE` static initialiser — marks all ISO control chars |
| `codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectDecoder.java` | 1307–1313 | `SKIP_CONTROL_CHARS_BYTES` `ByteProcessor` — skips the entire set |
| `codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectDecoder.java` | 1275–1289 | `LineParser.skipControlChars` — advances `readerIndex` past all matching bytes |</p>
<p>## Specification Analysis</p>
<p>### RFC 9112 §2.2 — Message Parsing</p>
<p>&gt; In the interest of robustness, a server that is expecting to receive and parse a
&gt; request-line **SHOULD ignore at least one empty line (CRLF)** received prior to the
&gt; request-line.</p>
<p>&gt; An HTTP/1.1 user agent **MUST NOT** preface or…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-hvcg-qmg6-jm4c"/>
  </entry>
</feed>
