[Paper Review] Deriving Semantics-Aware Fuzzers from Web API Schemas
This paper presents Schemathesis, a property-based fuzzer that automatically derives semantics-aware, structure-aware fuzzers from OpenAPI and GraphQL schemas using the Hypothesis testing library. It outperforms existing tools by handling 100% of real-world web services without fatal errors and discovering 1.4× to 4.5× more unique defects than the next-best fuzzer, while enabling customizable input generation and semantic validation.
Fuzzing -- whether generating or mutating inputs -- has found many bugs and security vulnerabilities in a wide range of domains. Stateful and highly structured web APIs present significant challenges to traditional fuzzing techniques, as execution feedback is usually limited to a response code instead of code coverage and vulnerabilities of interest include silent information-disclosure in addition to explicit errors. Our tool, Schemathesis, derives structure- and semantics-aware fuzzers from web API schemas in the OpenAPI or GraphQL formats, using property-based testing tools. Derived fuzzers can be incorporated into unit-test suites or run directly, with or without end-user customisation of data generation and semantic checks. We construct the most comprehensive evaluation of web API fuzzers to date, running eight fuzzers against sixteen real-world open source web services. OpenAPI schemas found in the wild have a long tail of rare features and complex structures. Of the tools we evaluated, Schemathesis was the only one to handle more than two-thirds of our target services without a fatal internal error. Schemathesis finds 1.4 times to 4.5 times more unique defects than the respectively second-best fuzzer for each target, and is the only fuzzer to find defects in four targets.
Motivation & Objective
- To develop a scalable, reusable method for generating custom, semantics-aware fuzzers from web API schemas.
- To address the limitations of traditional fuzzing in stateful, structured web APIs where feedback is limited to HTTP status codes.
- To improve defect detection by incorporating semantic checks such as response conformity, missing headers, and silent information disclosure.
- To evaluate and compare the effectiveness of web API fuzzers in real-world settings using a comprehensive benchmark suite.
- To provide a reusable, open-source evaluation corpus of real web services, schemas, and fuzzers for future research.
Proposed method
- Leverages the Hypothesis property-based testing library to generate structured, valid inputs based on OpenAPI or GraphQL schema definitions.
- Uses schema-defined types, constraints, and format annotations to generate semantically valid test inputs and request sequences.
- Integrates semantic validation checks—such as response body conformity, header presence, and status code correctness—into the fuzzer workflow.
- Supports in-process fuzzing via ASGI/WSGI integration to enable code coverage feedback and deeper instrumentation.
- Employs shrinking and deduplication techniques from Hypothesis to minimize and report unique, actionable defects.
- Allows user customization of data generation strategies and semantic checks through extensible test harnesses.

Experimental results
Research questions
- RQ1Can property-based testing techniques be effectively adapted to derive semantics-aware fuzzers from web API schemas?
- RQ2How does schema-aware fuzzer generation compare to traditional fuzzing in detecting real-world defects in production web services?
- RQ3To what extent can a fuzzer handle the full diversity of real-world OpenAPI and GraphQL schemas, including rare or complex features?
- RQ4How does the integration of semantic validation improve defect detection compared to purely syntactic or structural fuzzing?
- RQ5What is the impact of property-based testing workflows on defect consistency and report quality in web API fuzzing?
Key findings
- Schemathesis is the only fuzzer in the evaluation to handle all 16 real-world web services without fatal internal errors, outperforming others on schema robustness.
- It discovered 1.4× to 4.5× more unique defects than the second-best fuzzer across all targets, with the only tool to find defects in four of the 16 services.
- The fuzzer reported a single minimal input per defect in most cases, with high report quality due to Hypothesis’s shrinking and deduplication capabilities.
- Schemathesis demonstrated higher consistency in defect detection than state-of-the-art tools, especially when run for longer durations.
- The evaluation corpus, including 16 real web services and 8 fuzzers, is open-sourced and reusable for future research.
- The study confirms that integrating semantic checks and schema-aware input generation significantly improves defect detection over syntactic or black-box approaches.
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.