A coverage-guided fuzzer for Python and Python extensions based on libFuzzer
91
A fuzzing test harness for an HTTP request parser that validates parsing of HTTP request lines and headers.
You need to create a fuzzing harness to test a simple HTTP request parser. The parser should accept raw HTTP request bytes and extract the method, path, and a single header. Your fuzzer should use structured input generation to create various HTTP request formats.
Implement a parse_http_request function that:
method, path, header_name, header_valueValueError for invalid inputExample valid input:
GET /index.html HTTP/1.1
Host: example.comYour fuzzer must:
Generate the following components:
@generates
import atheris
def TestOneInput(data: bytes) -> None:
"""
Fuzzing entry point that tests the HTTP request parser.
Args:
data: Raw fuzzing input bytes
"""
passProvides coverage-guided fuzzing capabilities and structured input generation.
Install with Tessl CLI
npx tessl i tessl/pypi-atherisevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10