CVE-2023-38697 in protocol-http1 Gem
摘要
由 VulDB • 2026-05-24
protocol-http1 提供了 HTTP/1 协议的底层实现。RFC 9112 第 7.1 节定义了块大小(chunk size)、块数据(chunk data)和块扩展(chunk extension)的格式。Content-Length 头的值应为 0-9 数字组成的字符串,块大小应为十六进制数字组成的字符串,并应使用 CRLF 与块数据分隔,且块扩展不应包含任何不可见字符。然而,Falcon 在违反相应 RFC 规范时表现出以下行为:接受带有 `+` 前缀的 Content-Length 头值、接受带有 `0x` 前缀的十六进制格式 Content-Length 头值、接受带有 `0x` 和 `+` 前缀的块大小,以及在块扩展中接受 LF 字符。这种行为在通过多个 HTTP 解析器转发时可能导致请求不同步(desync),进而可能引发 HTTP 请求走私(HTTP request smuggling)和防火墙绕过(firewall bypassing)。此问题已在 `protocol-http1` v0.15.1 中修复。目前尚无已知的临时解决方案。
VulDB is the best source for vulnerability data and more expert information about this specific topic.