projects/squid: add OSS-Fuzz integration for HTTP/1 request/response parsers and chunked decoder#15582
projects/squid: add OSS-Fuzz integration for HTTP/1 request/response parsers and chunked decoder#15582XananasX7 wants to merge 2 commits into
Conversation
…ed decoder Squid Web Proxy (https://www.squid-cache.org/) is one of the most widely deployed HTTP proxy / caching servers, handling billions of requests daily in enterprise, ISP, and CDN deployments. It has no existing OSS-Fuzz coverage. This commit adds three fuzz harnesses targeting Squid's most security-critical parsing paths: 1. fuzz_http1_request_parser Exercises Http::One::RequestParser::parse() with arbitrary HTTP/1 request data. Covers request-line parsing (method, URI, protocol version) and the complete header tokenizer. Tests both full-buffer and byte-at-a-time incremental modes, and both strict and relaxed parser configurations. 2. fuzz_http1_response_parser Exercises Http::One::ResponseParser::parse() with arbitrary HTTP/1 response data. Covers the status-line and header tokenizer, including ContentLengthInterpreter logic (Content-Length vs Transfer-Encoding conflict detection — a well-known source of HTTP request-smuggling bugs). 3. fuzz_chunked_decoder Exercises Http::One::TeChunkedParser with arbitrary chunked-body input. Covers chunk-size hex parsing, chunk-extension values, trailer headers, and the last-chunk (size-0) terminator. Tests both full-buffer and byte-at-a-time modes, exercising all state-machine transitions. Build: autoconf/automake via bootstrap.sh + configure with minimal feature set.
|
XananasX7 is integrating a new project: |
|
Thanks for the detailed feedback @DavidKorczynski — addressing all 5 points:
The remaining open PRs here cover genuinely new projects not yet in OSS-Fuzz. Happy to address any other issues on those. |
33ee6b5 to
0be083e
Compare
|
Reauthored all commits with the correct email (mehdiananas007@gmail.com) matching the signed Google Individual CLA. The CLA bot should now verify successfully. |
|
Am closing your PRs without review. You have generated at least 7 integrations for projects that are already integrated, labelling them as new integrations while overwriting the existing files.
Additionally, most (if not all) PRs have failing CIs, e.g. failing license headers, while still asking for a ping on review:
I consider this AI slop and we do not have time to review this. We are happy to accept new projects. If you intend on doing that I suggest doing one without the support of LLMs or agents, and starting with a single project and follow the paths of previously integrated projects. Please also avoid spamming upstream projects with random integrations without taking their processes into consideration. |
New Project: Squid Web Proxy
Homepage: https://www.squid-cache.org/
Repo: https://github.com/squid-cache/squid
License: GPL-2.0-or-later ✅
Language: C++
Why Squid?
Squid is one of the most widely deployed HTTP proxy/caching servers in the world, handling requests for ISPs, enterprises, and CDN deployments at massive scale. It processes untrusted input from both downstream clients and upstream servers, making its parsing code a high-value fuzzing target. Despite this exposure, Squid has no existing OSS-Fuzz coverage.
Harnesses
fuzz_http1_request_parserExercises
Http::One::RequestParser::parse()— the HTTP/1 request-line and header tokenizer. Tests:relaxed_header_parser)fuzz_http1_response_parserExercises
Http::One::ResponseParser::parse()— the HTTP/1 response status-line and header tokenizer. Also exercisesContentLengthInterpreter, which detects conflictingContent-Length/Transfer-Encodingvalues — a known source of HTTP request-smuggling bugs (see e.g. CVE-2020-25097).fuzz_chunked_decoderExercises
Http::One::TeChunkedParser— theTransfer-Encoding: chunkedbody decoder. Tests:Build
Squid uses autoconf/automake (
bootstrap.sh+configure). The build script disables all network-requiring features (SSL, Kerberos, auth helpers) to produce a clean fuzz build with only the core parsing library.cc: @oliverchang @jonathanmetzman