Skip to content

Conversation

reconsumeralization
Copy link

Summary

Fix gemini-cli OSS-Fuzz build failures and add comprehensive fuzzing coverage

Problem

The gemini-cli project was failing OSS-Fuzz CI builds due to:

  1. Missing build.sh script in Docker container (bash: /src/build.sh: No such file or directory)
  2. Incomplete build configuration for multiple fuzzers
  3. Missing proper Apache 2.0 license headers on new files

Solution

Build Fixes

  • Dockerfile: Added COPY build.sh /src/ to copy build script into container
  • build.sh: Updated to compile all 5 fuzzers properly with Jazzer.js

New Fuzzers Added

  • fuzz_http_header.js - HTTP header parsing fuzzing
  • fuzz_json_decoder.js - JSON parsing fuzzing
  • fuzz_mcp_decoder.js - MCP protocol decoding fuzzing
  • fuzz_url.js - URL parsing fuzzing
  • seed_corpora.sh - Test corpus management script

License Compliance

  • Added proper Apache 2.0 license headers to all new files (2025)
  • Ensured copyright compliance for OSS-Fuzz integration

Testing

  • Local build test successful: python infra/helper.py build_fuzzers gemini-cli
  • All 5 fuzzers compile without errors
  • Generated fuzzer binaries verified in build/out/gemini-cli/

Impact

  • Fixes OSS-Fuzz CI build failures for gemini-cli
  • Enables continuous fuzzing of gemini-cli codebase
  • Improves security testing coverage for critical parsing functions
  • Prepares project for automated security issue detection

Files Changed

  • projects/gemini-cli/Dockerfile - Added build script copy
  • projects/gemini-cli/build.sh - Enhanced fuzzer compilation
  • projects/gemini-cli/fuzzers/fuzz_http_header.js - New HTTP header fuzzer
  • projects/gemini-cli/fuzzers/fuzz_json_decoder.js - New JSON decoder fuzzer
  • projects/gemini-cli/fuzzers/fuzz_mcp_decoder.js - New MCP decoder fuzzer
  • projects/gemini-cli/fuzzers/fuzz_url.js - New URL parser fuzzer
  • projects/gemini-cli/seed_corpora.sh - New corpus management script

Copy link

github-actions bot commented Sep 5, 2025

reconsumeralization is integrating a new project:
- Main repo: https://github.com/google-gemini/gemini-cli
- Criticality score: 0.49320

@reconsumeralization
Copy link
Author

@google/oss-fuzz-maintainers @inferno-chromium

This PR adds complete OSS-Fuzz integration for the Google gemini-cli project. All CI checks have passed (14/14 successful), including comprehensive testing across multiple fuzzing engines and sanitizers.

Key achievements:

  • ✅ 5 optimized JavaScript fuzzers
  • ✅ Performance-optimized build (tar-based node_modules handling)
  • ✅ Resolved complex runtime dependency issues
  • ✅ Clean, production-ready implementation

The integration is ready for continuous fuzzing of the gemini-cli codebase for security vulnerability discovery.

CC: @google/oss-fuzz, @oliverchang

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant