Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.0%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: SnoopyComp
- License: apache-2.0
- Language: HTML
- Default Branch: main
- Size: 5.96 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
- Releases: 0
Metadata Files
README.md
A Framework for Fuzz Target Generation and Evaluation
This framework generates fuzz targets for real-world C/C++/Java/Python projects with
various Large Language Models (LLM) and benchmarks them via the
OSS-Fuzz platform.
More details available in AI-Powered Fuzzing: Breaking the Bug Hunting Barrier:

Current supported models are: - Vertex AI code-bison - Vertex AI code-bison-32k - Gemini Pro - Gemini Ultra - Gemini Experimental - Gemini 1.5 - OpenAI GPT-3.5-turbo - OpenAI GPT-4 - OpenAI GPT-4o - OpenAI GPT-3.5-turbo (Azure) - OpenAI GPT-4 (Azure) - OpenAI GPT-4o (Azure)
Generated fuzz targets are evaluated with four metrics against the most up-to-date data from production environment:
- Compilability
- Runtime crashes
- Runtime coverage
- Runtime line coverage diff against existing human-written fuzz targets in OSS-Fuzz.
Here is a sample experiment result from 2024 Jan 31. The experiment included 1300+ benchmarks from 297 open-source projects.
Overall, this framework manages to successfully leverage LLMs to generate valid fuzz targets (which generate non-zero coverage increase) for 160 C/C++ projects. The maximum line coverage increase is 29% from the existing human-written targets.
Note that these reports are not public as they may contain undisclosed vulnerabilities.
Usage
Check our detailed usage guide for instructions on how to run this framework and generate reports based on the results.
Collaborations
Interested in research or open-source community collaborations? Please feel free to create an issue or email us: oss-fuzz-team@google.com.

Bugs Discovered
So far, we have reported 26 new bugs/vulnerabilities found by automatically generated targets built
by this framework:
| Project | Bug | LLM | Prompt Builder | Target oracle |
| ------- | --------- | --------- | --------------- | ------- |
| cJSON | OOB read | Vertex AI | Default | Far reach, low coverage |
| libplist | OOB read | Vertex AI | Default | Far reach, low coverage |
| hunspell | OOB read | Vertex AI | default | Far reach, low coverage |
| zstd | OOB write | Vertex AI | default | Far reach, low coverage |
| gdbm | Stack buffer underflow | Vertex AI | default | Far reach, low coverage |
| hoextdown | Use of uninitialised memory | Vertex AI | default | Far reach, low coverage |
| pjsip | OOB read | Vertex AI | Default | Low coverage with fuzz keyword + easy params far reach |
| pjsip | OOB read | Vertex AI | Default | Low coverage with fuzz keyword + easy params far reach |
| gpac | OOB read | Vertex AI | Default | Low coverage with fuzz keyword + easy params far reach |
| gpac | OOB read/write | Vertex AI | Default | All |
| gpac | OOB read | Vertex AI | Default | All |
| gpac | OOB read | Vertex AI | Default | All |
| sqlite3 | OOB read | Vertex AI | Default | All |
| htslib | OOB read | Vertex AI | Default | All |
| libical | OOB read | Vertex AI | Default | All |
| croaring | OOB read | Vertex AI | Test-to-harness | All |
| Undisclosed | Java RCE (pending maintainer triage) | Vertex AI | Default | Far reach, low coverage |
| Undisclosed | Regexp DoS (pending maintainer triage) | Vertex AI | Default | Far reach, low coverage |
| Undisclosed | Use of uninitialised memory | Vertex AI | Test-to-harness | Test identifier |
| Undisclosed | OOB read | Vertex AI | Default | Low coverage with fuzz keyword + easy params far reach |
| Undisclosed | Use after free | Vertex AI | Default | Low coverage with fuzz keyword + easy params far reach |
| Undisclosed | OOB read | Vertex AI | Default | All |
| Undisclosed | OOB read/write | Vertex AI | Default | All |
| Undisclosed | OOB read | Vertex AI | Default | All |
| Undisclosed | OOB read | Vertex AI | Default | All |
| Undisclosed | OOB read | Vertex AI | Test-to-harness | Test identifier |
These bugs could only have been discovered with newly generated targets. They were not reachable with existing OSS-Fuzz targets.
Current top coverage improvements by project
| Project | Coverage increase % * |
|----------|-------------------|
| tinyxml2 | 29.84 |
| inih | 29.67 |
| lodepng | 26.21 |
| libarchive | 23.39 |
| cmark | 21.61 |
| fribidi | 18.20 |
| lighttpd | 17.56 |
| libmodbus | 16.59 |
| valijson | 16.21 |
| libiec61850 | 13.53 |
| hiredis | 13.50 |
| cmake | 12.62 |
| pugixml | 12.43 |
| meshoptimizer | 12.23 |
| libusb | 11.12 |
| json | 10.84 |
* Percentage coverage is calculated using a denominator of the total lines of source code compiled during the OSS-Fuzz build process for the entire project.
Citing This Work
Please click on the 'Cite this repository' button located on the right-hand side of this GitHub page for citation details.
Owner
- Login: SnoopyComp
- Kind: user
- Repositories: 1
- Profile: https://github.com/SnoopyComp
Citation (CITATION.cff)
cff-version: 1.2.0
title: 'OSS-Fuzz-Gen: Automated Fuzz Target Generation'
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Dongge
family-names: Liu
email: donggeliu@google.com
affiliation: Google LLC
orcid: 'https://orcid.org/0000-0003-4821-7033'
- given-names: Oliver
family-names: Chang
email: ochang@google.com
affiliation: Google LLC
orcid: 'https://orcid.org/0009-0006-3181-4551'
- given-names: Jonathan
family-names: metzman
email: metzman@google.com
affiliation: Google LLC
orcid: 'https://orcid.org/0000-0002-7042-0444'
- given-names: Martin
family-names: Sablotny
email: msablotny@nvidia.com
affiliation: NVIDIA
orcid: 'https://orcid.org/0000-0002-9836-8254'
- given-names: Mihai
family-names: Maruseac
email: mihaimaruseac@google.com
affiliation: Google LLC
orcid: 'https://orcid.org/0000-0002-6225-1206'
repository-code: 'https://github.com/google/oss-fuzz-gen'
url: >-
https://security.googleblog.com/2023/08/ai-powered-fuzzing-breaking-bug-hunting.html
abstract: >-
OSS-Fuzz-Gen, an innovative open-source project developed
by Google, automates fuzz target generation to enhance
software security and reliability. Utilizing advanced
techniques, including large language models (LLM), static
code analysis, and runtime crash diagnosis, this project
efficiently creates and optimizes fuzz targets. These
efforts increase code coverage and identify
vulnerabilities within open-source projects. We actively
encourage and support collaborations with the research and
open-source communities, offering our services at no cost.
keywords:
- Fuzzing
- Fuzz target generation
- Large Language Models
- Open-source
- Code analysis
- Software security
license: Apache-2.0
version: 'https://github.com/google/oss-fuzz-gen/tree/v1.0'
date-released: '2024-05-02'
GitHub Events
Total
Last Year
Dependencies
- actions/checkout v4 composite
- actions/setup-python v5 composite
- actions/checkout v4 composite
- google-github-actions/auth v2 composite
- google-github-actions/setup-gcloud v2 composite
- actions/checkout v4 composite
- google-github-actions/auth v2 composite
- google-github-actions/setup-gcloud v2 composite
- actions/checkout v4 composite
- google-github-actions/auth v2 composite
- google-github-actions/setup-gcloud v2 composite
- debian 12 build
- debian 12 build
- PyGithub ==1.51
- Donotimportthesameclassmultipletimes. *
- Eachiteminthislisthastwoattributes ,<class_name>tagcontainstheclassnameand<full_class_name>
- Forexample ,ifthefullqualifiednameofaclassis<code>abc.def.ghi<
- Hereisalistofclassesandtheirfullyqualifiedname.Youmustimportallclassesbytheirfullyqualifiedname. *
- Stringtest =
- WRONG *
- containsthefullyqualifiednameofthegivenclass. *
- importcom.code_intelligence.jazzer.api.FuzzedDataProvider *
- publicclass *
- publicstaticvoidfuzzerInitialize *
- publicstaticvoidfuzzerTearDown *
- publicstaticvoidfuzzerTestOneInput *
- publicstaticvoidtesting *
- statement <code>importabc.def.ghi
- GitPython ==3.1.43
- Jinja2 ==3.1.4
- PyYAML ==6.0.1
- anthropic ==0.31.2
- chardet ==5.2.0
- cxxfilt ==0.3.0
- google-cloud-aiplatform ==1.51.0
- google-cloud-storage ==2.9.0
- openai ==1.16.2
- pandas ==2.2.2
- pylint ==3.2.5
- pyright ==1.1.345
- requests ==2.32.0
- tiktoken ==0.7.0
- yapf ==0.40.1
- annotated-types ==0.7.0
- anthropic ==0.31.2
- anyio ==4.4.0
- astroid ==3.2.2
- cachetools ==5.3.3
- certifi ==2024.7.4
- chardet ==5.2.0
- charset-normalizer ==3.3.2
- cxxfilt ==0.3.0
- dill ==0.3.8
- distro ==1.9.0
- docstring-parser ==0.16
- filelock ==3.15.4
- fsspec ==2024.6.1
- gitdb ==4.0.11
- gitpython ==3.1.43
- google-api-core ==2.19.1
- google-auth ==2.31.0
- google-cloud-aiplatform ==1.51.0
- google-cloud-bigquery ==3.25.0
- google-cloud-core ==2.4.1
- google-cloud-resource-manager ==1.12.3
- google-cloud-storage ==2.9.0
- google-crc32c ==1.5.0
- google-resumable-media ==2.7.1
- googleapis-common-protos ==1.63.2
- grpc-google-iam-v1 ==0.13.1
- grpcio ==1.64.1
- grpcio-status ==1.62.2
- h11 ==0.14.0
- httpcore ==1.0.5
- httpx ==0.27.0
- huggingface-hub ==0.24.1
- idna ==3.7
- importlib-metadata ==8.0.0
- isort ==5.13.2
- jinja2 ==3.1.4
- jiter ==0.5.0
- markupsafe ==2.1.5
- mccabe ==0.7.0
- nodeenv ==1.9.1
- numpy ==2.0.0
- openai ==1.16.2
- packaging ==24.1
- pandas ==2.2.2
- platformdirs ==4.2.2
- proto-plus ==1.24.0
- protobuf ==4.25.3
- pyasn1 ==0.6.0
- pyasn1-modules ==0.4.0
- pydantic ==2.8.2
- pydantic-core ==2.20.1
- pylint ==3.2.5
- pyright ==1.1.345
- python-dateutil ==2.9.0.post0
- pytz ==2024.1
- pyyaml ==6.0.1
- regex ==2024.5.15
- requests ==2.32.0
- rsa ==4.9
- shapely ==2.0.4
- six ==1.16.0
- smmap ==5.0.1
- sniffio ==1.3.1
- tiktoken ==0.7.0
- tokenizers ==0.19.1
- tomli ==2.0.1
- tomlkit ==0.12.5
- tqdm ==4.66.4
- typing-extensions ==4.12.2
- tzdata ==2024.1
- urllib3 ==2.2.2
- yapf ==0.40.1
- zipp ==3.19.2