HTTP::Parser::XS before 0.18 truncates PATH_INFO at encoded NUL
parse_http_request in the Perl module stops PATH_INFO at an encoded NUL byte; 0.18 is the fixed release.
NUL-truncated PATH_INFO in HTTP::Parser::XS before 0.18
HTTP::Parser::XS before 0.18 for Perl truncates PATH_INFO at an encoded NUL in parse_http_request. The XS parser URL-decodes the request path and measures it with strlen(), so the path ends at the first byte from %00. The pure-Perl backend is not affected. A remote attacker can send a path that a proxy or filter checks in full while the application routes on the shorter result.
What to do: Upgrade HTTP::Parser::XS to 0.18 or later. The pure-Perl backend is not affected.
| Product | Affected | Fixed in |
|---|---|---|
| HTTP::Parser::XS | before 0.18 | 0.18 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
HTTP::Parser::XS versions before 0.18 for Perl truncate PATH_INFO at an encoded NUL byte in parse_http_request. The XS parser URL-decodes the request path and measures the result with strlen(), so PATH_INFO ends at the first byte decoded from %00. The pure-Perl backend is not affected. A remote attacker can send a path that a proxy or filter checks in full while the application routes on a shorter one.
parse_http_request in the Perl module stops PATH_INFO at an encoded NUL byte; 0.18 is the fixed release.
Today 846 readers · 1.1K views · 848 reads · all time 159K views