The following process is used for projects in OSS-Fuzz:
- A maintainer of an opensource project or an outside volunteer creates one or more fuzz targets and integrates them with the project's build and test system.
- The project is accepted to OSS-Fuzz.
- When ClusterFuzz finds a bug, an issue is automatically reported in the OSS-Fuzz issue tracker (example). (Why use a different tracker?). Project owners are CC-ed to the bug report.
- The project developer fixes the bug upstream and credits OSS-Fuzz for the discovery (commit message should contain the string 'Credit to OSS-Fuzz').
- ClusterFuzz automatically verifies the fix, adds a comment and closes the issue (example).
- 30 days after the fix is verified or 90 days after reporting (whichever is earlier), the issue becomes public (guidelines).
Accepting New Projects
To be accepted to OSS-Fuzz, an open-source project must have a significant user base and/or be critical to the global IT infrastructure. To submit a new project:
- Create a pull request with new
projects/<project_name>/project.yaml
file (example) giving at least the following information:- project homepage.
- e-mail of the engineering contact person to be CCed on new issues. It should:
- belong to an established project committer (according to VCS logs). If this is not you or the email address differs from VCS, an informal e-mail verification will be required.
- be associated with a Google account (why?). If you use an alternate email address linked to a Google Account, it will ONLY give you access to filed bugs in issue tracker and NOT to ClusterFuzz dashboard (due to appengine api limitations).
- Note that
project_name
can only contain alphanumeric characters, underscores(_) or dashes(-).
- Once accepted by an OSS-Fuzz project member, follow the New Project Guide to configure your project.
Bug Disclosure Guidelines
Following Google's standard disclosure policy OSS-Fuzz will adhere to following disclosure principles:
- Deadline. After notifying project authors, we will open reported issues to the public in 90 days, or 30 days after the fix is released (whichever comes earlier).
- Weekends and holidays. If a deadline is due to expire on a weekend, the deadline will be moved to the next normal work day.
- Grace period. We have a 14-day grace period. If a 90-day deadline expires but the upstream engineers let us know before the deadline that a patch is scheduled for release on a specific day within 14 days following the deadline, the public disclosure will be delayed until the availability of the patch.
More Documentation
Build Status
This page gives the latest build logs for each project.
(Internal only) Builds dashboard.
Trophies
This page gives a list of publicly-viewable fixed bugs found by OSS-Fuzz.
References