]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MAJOR: quic: fix parsing frame type
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 9 Feb 2026 08:09:33 +0000 (09:09 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 12 Feb 2026 08:09:44 +0000 (09:09 +0100)
commit8e16fd2cf14bbf0468de553744507ddd845e3434
treec7eb1528bf01b57009b4324b602a434b5c0fb6fd
parent4aa974f949d223bed1562a528f025f87aeb05b5c
BUG/MAJOR: quic: fix parsing frame type

QUIC frame type is encoded as a varint. Initially, haproxy parsed it as
a single byte, which was enough to cover frames defined in RFC9000.

The code has been extended recently to support multi-bytes encoded
value, in anticipation of QUIC frames extension support. However, there
was no check on the varint format. This is interpreted erroneously as a
PADDING frame as this serves as the initial value. Thus the rest of the
packet is incorrectly handled, with various resulting effects, including
infinite loops and/or crashes.

This patch fixes this by checking the return value of quic_dec_int(). If
varint cannot be parsed, the connection is immediately closed.

This issue is assigned to CVE-2026-26080 report.

This must be backported up to 3.2.

Reported-by: Asim Viladi Oglu Manizada <manizada@pm.me>
src/quic_frame.c