Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

ci: integrate with OSS-Fuzz for continuous distributed fuzzing

Open
#156 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
rust

Research direction

Start with the OSS-Fuzz Rust new-project guide and review the existing fuzz targets: fuzz_parse_eager, fuzz_parse_lazy, fuzz_depth, and fuzz_ffi_ops. Prepare projects/qjson/ in google/oss-fuzz with its Dockerfile and project.yaml, then submit the PR. Done means all four targets run successfully, the project is approved, and the first OSS-Fuzz run completes with maintainer dashboard access.

Written by the indexing model from the issue text.

Description

enhancement

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
  1. Create projects/qjson/ in google/oss-fuzz repository
  2. Write Dockerfile to build qjson fuzz targets
  3. Write project.yaml with project metadata
  4. Adapt existing fuzz targets (fuzz_parse_eager, fuzz_parse_lazy, fuzz_depth, fuzz_ffi_ops)
  5. 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

  • PR submitted to google/oss-fuzz repository
  • All 4 existing fuzz targets integrated
  • Project approved and running on OSS-Fuzz infrastructure
  • ClusterFuzz dashboard accessible to maintainers
  • First fuzzing run completes successfully

References

Dominant language
Rust
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from api7/lua-qjson

All issues in api7/lua-qjson

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.