awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
google avatar

google/fuzzingArchived

0
View on GitHub↗
3,772 stars·448 forks·C++·Apache-2.0·17 views

Fuzzing

This project is a comprehensive software fuzzing knowledge base and technical guide designed for discovering software bugs and vulnerabilities. It serves as a resource for implementing coverage-guided, structure-aware, and hybrid fuzzing across various targets, including compiled binaries and hardware kernels.

The resource provides specialized guidance on using grammars and defined data formats to generate syntactically valid inputs for complex APIs. It also details methods for combining grey-box fuzzing with symbolic execution to reach deep execution paths and utilizes binary instrumentation to identify memory safety issues and undefined behavior.

The documentation covers the full lifecycle of vulnerability discovery, including identifying high-risk targets, building fuzz targets, and integrating continuous fuzzing into CI pipelines. It further addresses operational concerns such as measuring code coverage, triaging crashes, and minimizing test cases to isolate unique bugs.

This repository functions as a technical reference and manual for applying automated input mutation and binary analysis to ensure software correctness.

Features

  • Fuzzing Knowledge Bases - Provides a comprehensive collection of tutorials and research resources for finding software bugs through automated input mutation and coverage analysis.
  • Coverage-Guided Fuzzing - Implements coverage-guided fuzzing mechanisms that use executed code paths to drive input mutations.
  • Corpus Management - Details how to maintain and organize seed corpora to maximize the discovery of new code paths.
  • Memory Safety Diagnostics - Guides the use of binary instrumentation to detect buffer overflows and uninitialized memory reads.
  • Binary Instrumentation - Utilizes binary instrumentation to track memory safety and program flow in compiled executables without source code.
  • Fuzz Target Compilation - Explains how to compile source code with the specific instrumentation required to create executable fuzz targets.
  • Undefined Behavior Detection - Details the use of instrumentation to trap and identify operations that violate language specifications.
  • Memory and Concurrency Error Detection - Combines instrumentation and mutated data to discover memory leaks, overflows, and other critical programming errors.
  • Attack Surface Analysis - Provides guidance on finding high-risk entry points exposed to untrusted user input or network traffic.
  • Binary-Only Fuzzing Frameworks - Offers frameworks for performing coverage-guided fuzzing on binaries using emulation or static rewriting.
  • Emulation-Based Fuzzings - Provides technical guidance on performing coverage-guided fuzzing on compiled binaries without access to source code.
  • Grammar-Aware Input Generations - Implements grammar-aware input generation to exercise structured parsers more effectively.
  • Fuzzing Implementation Guides - Provides a technical reference for implementing structure-aware, hybrid, and continuous fuzzing.
  • Corpus Seeding - Guides the maintenance of a representative seed corpus to maximize code coverage and provide a baseline for mutation.
  • Vulnerability Discovery Methods - Provides a comprehensive guide for discovering memory safety bugs and undefined behavior in software.
  • Crash Triage and Minimization - Provides methods for triaging crashes, minimizing test cases, and optimizing fuzz targets to identify security flaws.
  • Memory Error Detection - Provides techniques to identify use-after-free and other memory corruption bugs using binary analysis.
  • Structure-Aware Mutation - Explains how to use dictionaries and structure-aware logic to navigate and mutate complex serialized or encrypted data formats.
  • Crash Deduplication and Triaging - Details processes for deduplicating crash reports and triaging findings to identify unique vulnerabilities.
  • Input Mutation Strategies - Describes techniques for transforming existing test cases into mutated versions to uncover new program behaviors.
  • Fuzzing Coverage Analyses - Details methods for analyzing control flow edges to identify and reach new execution paths during fuzzing.
  • Continuous Fuzzing - Provides guidance on implementing continuous fuzzing loops to detect vulnerabilities as software evolves.
  • CI/CD Fuzzing Integrations - Provides a framework for integrating fuzz targets into automated CI pipelines to detect regressions in every build.
  • Fuzzing Instrumentation - Guides the creation of instrumented binaries and harness functions that accept byte arrays for fuzzing.
  • Structured Data Mutations - Implements structure-aware mutation to fuzz complex data formats while preserving the required internal schema.
  • Unit Fuzz Targets - Provides a methodology for writing simple, deterministic fuzz targets that target specific API functions.
  • General Bug Detection - Describes using sanitizers and dynamic testing tools to identify memory errors and undefined behavior at runtime.
  • Grammar-Based Generation - Provides methods for generating syntactically valid test cases based on formal grammars.
  • Test Case Generators - Provides guidance on using structural rules and grammars to automatically generate test cases from scratch.
  • Structure-Aware Fuzzers - Create fuzzers that understand specific data formats to explore deep code paths more effectively.
  • Kernel Fuzzing Tools - Provides specialized frameworks for performing coverage-guided fuzzing on operating system kernels and firmware.
  • Fuzzing Curricula - Provides structured educational paths for learning automated software fuzzing and vulnerability discovery.
  • Technical Reference Guides - Serves as a technical reference for identifying memory safety issues and undefined behavior using binary instrumentation and crash triage.
  • Stateful API Fuzzing - Provides guidance on fuzzing stateful APIs by executing structured call traces to test state-dependent logic.
  • Binary Analysis Guides - Functions as a detailed manual for using binary emulation and instrumentation to detect vulnerabilities.
  • Symbolic Execution Fuzzings - Combines grey-box fuzzing with symbolic execution to solve complex constraints and reach deep execution paths.
  • Distributed Fuzzing Clusters - Details how to scale coverage-guided fuzzing across large clusters of machines to accelerate bug discovery.
  • Dictionary-Based Mutations - Demonstrates how to use predefined dictionaries of tokens to bypass complex validation checks in target applications.
  • Input Stream Splitting - Provides methods for dividing a single stream of fuzzed data into multiple sub-inputs using separators or offsets.
  • API Target Decomposition - Explains how to decompose massive APIs into smaller targets to accelerate the discovery of vulnerabilities.
  • Behavioral Equivalence Checkers - Details the use of behavioral equivalence checking to ensure different protocol implementations produce identical results.
  • Code Coverage Analysis - Provides guidance on measuring and reporting the extent of binary execution via instrumentation blocks.
  • Differential Testing - Describes differential testing techniques that compare multiple implementations to identify logic bugs via behavioral divergence.
  • Cross-Implementation Parity Verifiers - Describes comparing different implementations of the same spec to detect logic bugs through behavioral divergence.
  • Fuzzing Speed Optimizations - Offers strategies to increase fuzzing execution rates by optimizing memory, threads, and instrumentation.
  • IDL-Based Input Generation - Ships methods for mapping complex input grammars to intermediate formats like Protocol Buffers for high-coverage testing.
  • Test Case Minimization - Details techniques for reducing crashing inputs to the smallest possible byte sequence for faster bug isolation.
  • Wordlists - Resources and wordlists for fuzzing applications.
  • Research and Examples - Official Google resources and examples for fuzzing.
  • Wordlists and Payloads - Resources and tutorials for learning about fuzzing.

Star history

Star history chart for google/fuzzingStar history chart for google/fuzzing

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does google/fuzzing do?

This project is a comprehensive software fuzzing knowledge base and technical guide designed for discovering software bugs and vulnerabilities. It serves as a resource for implementing coverage-guided, structure-aware, and hybrid fuzzing across various targets, including compiled binaries and hardware kernels.

What are the main features of google/fuzzing?

The main features of google/fuzzing are: Fuzzing Knowledge Bases, Coverage-Guided Fuzzing, Corpus Management, Memory Safety Diagnostics, Binary Instrumentation, Fuzz Target Compilation, Undefined Behavior Detection, Memory and Concurrency Error Detection.

Which projects share features with google/fuzzing?

Projects with overlapping indexed features include: aflplusplus/aflplusplus — AFL++ is a coverage-guided fuzzing framework that discovers crashes and hangs in software by mutating inputs while… google/clusterfuzz — ClusterFuzz is an automated platform that runs coverage-guided fuzzers at scale to find security and stability bugs in… dvyukov/go-fuzz — go-fuzz is a coverage-guided randomized testing tool for identifying crashes and logic bugs in Go code. It consists of… google/oss-fuzz — OSS-Fuzz is a distributed, containerized platform for continuous fuzzing and memory safety analysis. It functions as a… google/afl — AFL is a coverage-guided fuzzer and security vulnerability scanner used to identify software bugs and memory… google/sanitizers — This project is a suite of runtime diagnostic tools designed to detect memory leaks, concurrency races, and…

Projects sharing features with Fuzzing

These projects share indexed features with Fuzzing. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • aflplusplus/aflplusplusAFLplusplus avatar

    AFLplusplus/AFLplusplus

    6,605View on GitHub↗

    AFL++ is a coverage-guided fuzzing framework that discovers crashes and hangs in software by mutating inputs while tracking which code paths are exercised. It functions as both a fuzzing engine and a campaign manager, supporting targets with or without source code through compile-time instrumentation, dynamic binary instrumentation, and emulation. The framework includes tools for crash triage and analysis, test case minimization, and campaign deployment across local or distributed environments. The framework distinguishes itself through its breadth of instrumentation backends, allowing users

    C
    View on GitHub↗6,605
  • google/clusterfuzzgoogle avatar

    google/clusterfuzz

    5,574View on GitHub↗

    ClusterFuzz is an automated platform that runs coverage-guided fuzzers at scale to find security and stability bugs in software. It orchestrates libFuzzer and AFL++ across distributed clusters of worker bots, collecting coverage feedback to guide input mutation and discover crashes. The platform provides a web-based dashboard for configuring fuzzing jobs, monitoring progress, and inspecting crash reports, with role-based access control to restrict sensitive features. The system automates the full fuzzing lifecycle, from build pipeline integration and corpus management to crash triage and bug

    Pythonfuzzingsecuritystability
    View on GitHub↗5,574
  • dvyukov/go-fuzzdvyukov avatar

    dvyukov/go-fuzz

    4,853View on GitHub↗

    go-fuzz is a coverage-guided randomized testing tool for identifying crashes and logic bugs in Go code. It consists of a fuzzer that evolves random inputs based on code execution paths, an instrumentation tool that produces binaries for tracking coverage, and a seed corpus manager. The tool utilizes compile-time binary instrumentation to monitor branch coverage and employs a feedback-driven mutation loop to prioritize inputs that reach new sections of the codebase. It includes capabilities for comparative differential testing to identify logic errors by executing different implementations of

    Go
    View on GitHub↗4,853
  • google/oss-fuzzgoogle avatar

    google/oss-fuzz

    12,353View on GitHub↗

    OSS-Fuzz is a distributed, containerized platform for continuous fuzzing and memory safety analysis. It functions as a bug hunting infrastructure that identifies security vulnerabilities and stability bugs through automated, coverage-guided fuzz testing across a scalable cluster of containers. The system provides a continuous security testing pipeline that manages the entire lifecycle of vulnerability discovery, from bootstrapping project templates and compiling targets to executing long-running batch tests. It specifically focuses on memory safety, utilizing sanitizers to detect buffer overf

    Shell
    View on GitHub↗12,353
  • Compare all 30 related projects→