Background
qjson currently runs timed fuzzing weekly (60 seconds per target), which is sufficient for corpus regression but insufficient for discovering deep bugs. OSS-Fuzz provides free continuous distributed fuzzing for open-source projects, running thousands of CPU hours daily.
Production JSON parsers like simdjson and serde_json have found multiple security-relevant bugs through OSS-Fuzz that local fuzzing would never discover.
Goal
Integrate qjson with Google's OSS-Fuzz for continuous, large-scale fuzz testing.
Why OSS-Fuzz
| Aspect |
Current (local timed fuzz) |
OSS-Fuzz |
| Runtime |
60s/target weekly |
Continuous, thousands of CPU-hours/day |
| Hardware |
1 GitHub runner |
Google distributed cluster |
| Coverage depth |
Shallow exploration |
Deep path discovery |
| Corpus |
Manual maintenance |
Auto-accumulated, cross-version |
| Cost |
Free |
Free (Google-sponsored) |
Scope
Integration Steps
- Create
projects/qjson/ in google/oss-fuzz repository
- Write
Dockerfile to build qjson fuzz targets
- Write
project.yaml with project metadata
- Adapt existing fuzz targets (
fuzz_parse_eager, fuzz_parse_lazy, fuzz_depth, fuzz_ffi_ops)
- Submit PR to
google/oss-fuzz, await approval (typically 1-2 weeks)
Requirements for Acceptance
- Open-source with OSI-approved license (Apache-2.0 ✓)
- Active maintenance ✓
- Real user base (API7/APISIX ecosystem ✓)
- Commitment to fix reported vulnerabilities within 90-day disclosure deadline
Acceptance Criteria
References
Background
qjson currently runs timed fuzzing weekly (60 seconds per target), which is sufficient for corpus regression but insufficient for discovering deep bugs. OSS-Fuzz provides free continuous distributed fuzzing for open-source projects, running thousands of CPU hours daily.
Production JSON parsers like simdjson and serde_json have found multiple security-relevant bugs through OSS-Fuzz that local fuzzing would never discover.
Goal
Integrate qjson with Google's OSS-Fuzz for continuous, large-scale fuzz testing.
Why OSS-Fuzz
Scope
Integration Steps
projects/qjson/ingoogle/oss-fuzzrepositoryDockerfileto build qjson fuzz targetsproject.yamlwith project metadatafuzz_parse_eager,fuzz_parse_lazy,fuzz_depth,fuzz_ffi_ops)google/oss-fuzz, await approval (typically 1-2 weeks)Requirements for Acceptance
Acceptance Criteria
google/oss-fuzzrepositoryReferences