Skip to content

cpuu/awesome-fuzzing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

171 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Awesome Fuzzing Awesome

Fuzzing or fuzz testing is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program. The program is then monitored for exceptions such as crashes, failing built-in code assertions, or potential memory leaks. Typically, fuzzers are used to test programs that take structured inputs.

A curated list of references to awesome Fuzzing for security testing. Additionally there is a collection of freely available academic papers, tools and so on.

Your favorite tool or your own paper is not listed? Fork and create a Pull Request to add it!

Contents

Books

Talks

Papers

To achieve a well-defined scope, I have chosen to include publications on fuzzing from 4 top major security conferences (2008–2025): (i) Network and Distributed System Security Symposium (NDSS), (ii) IEEE Symposium on Security and Privacy (S&P), (iii) USENIX Security Symposium (USEC), and (iv) ACM Conference on Computer and Communications Security (CCS).

Note: Papers are selected based on whether the title contains the keyword "fuzz." If a paper is related to fuzzing but does not include "fuzz" in its title, it may have been missed. In that case, please open a Pull Request and it will be reviewed for inclusion.

The Network and Distributed System Security Symposium (NDSS)

2025 (10 papers)
2024 (7 papers)
2023 (4 papers)
2022 (4 papers)
2021 (4 papers)
2020 (4 papers)
2019 (5 papers)
2018 (4 papers)
2017 (2 papers)
2016 (1 paper)
2008 (1 paper)

IEEE Symposium on Security and Privacy (IEEE S&P)

2025 (7 papers)
2024 (14 papers)
2023 (10 papers)
2022 (5 papers)
2021 (5 papers)
2020 (5 papers)
2019 (4 papers)
2018 (3 papers)
2017 (1 paper)
2015 (1 paper)
2010 (1 paper)

USENIX Security

2025 (14 papers)
2024 (12 papers)
2023 (19 papers)
2022 (14 papers)
2021 (6 papers)
2020 (10 papers)
2019 (2 papers)
2018 (3 papers)
2017 (2 papers)
2015 (1 paper)
2014 (1 paper)
2013 (1 paper)
2012 (1 paper)

ACM Conference on Computer and Communications Security (ACM CCS)

2025 (11 papers)
2024 (19 papers)
2023 (9 papers)
2022 (6 papers)
2021 (8 papers)
2020 (1 paper)
2019 (3 papers)
2018 (2 papers)
2017 (7 papers)
2016 (3 papers)
2013 (2 papers)
2012 (1 paper)
2008-2009 (2 papers)

ArXiv (Fuzzing with Artificial Intelligence & Machine Learning)

The others

Tools

A curated collection of open-source fuzzing tools, organized by target category based on the taxonomy from fuzzing-survey.org. Tools are selected based on a combination of factors including GitHub popularity, recency, availability of official repositories from original authors, and whether the project is actively maintained.

File

  • AFL++ - A superior fork to Google's AFL with more speed, more and better mutations, more and better instrumentation, and custom module support.
  • Angora - A mutation-based coverage guided fuzzer that increases branch coverage by solving path constraints without symbolic execution.

Kernel

  • ACTOR (2023) - An action-guided kernel fuzzing framework that generates inputs leveraging triggered actions and their temporal relationships.
  • NTFuzz (2021) - A type-aware Windows kernel fuzzer that statically analyzes system binaries to infer system call types for more effective fuzzing.
  • KRACE (2020) - A coverage-guided fuzzing framework that detects data races in kernel file systems by exploring concurrency through multi-threaded syscall sequences.
  • Razzer (2019) - A kernel fuzzer that uses static analysis and two-phase fuzzing to detect race conditions and concurrency bugs in Linux kernels.
  • Hydra (2019) - A fuzzing framework for automatically discovering semantic bugs in file systems using input mutators, feedback engines, and customizable checkers.
  • Janus (2019) - A file system fuzzer that finds memory corruptions in Linux kernel file systems by mutating both filesystem images and syscall sequences simultaneously.
  • DIFUZE (2017) - An interface-aware fuzzer for Linux kernel drivers that automatically recovers ioctl interfaces via LLVM analysis and generates targeted test cases.
  • IMF (2017) - A kernel API fuzzer that leverages automated API model inference to discover vulnerabilities in macOS kernel APIs.
  • kAFL (2017) - A hardware-assisted x86-64 VM kernel fuzzing framework with performant VM reloads for finding OS kernel vulnerabilities.
  • syzkaller (2015) - An unsupervised coverage-guided kernel fuzzer supporting FreeBSD, Fuchsia, gVisor, Linux, NetBSD, OpenBSD, and Windows.
  • Trinity (2012) - A Linux system call fuzzer that generates semi-intelligent random arguments to syscalls, including valid file descriptors, flags, and range-biased values.

Network

API

  • IvySyn - A fully-automated framework for discovering memory error vulnerabilities in Deep Learning (DL) frameworks.
  • MINER - A REST API fuzzer that utilizes three data-driven designs working together to guide sequence generation, improve request generation quality, and capture unique errors caused by incorrect parameter usage.
  • RestTestGen - A robust tool and framework designed for automated black-box testing of RESTful web APIs.
  • GraphFuzz - An experimental framework for building structure-aware, library API fuzzers.
  • Minerva - A browser fuzzer augmented by API mod-ref relations, aiming to synthesize highly-relevant browser API invocations in each test case.
  • FANS - A fuzzing tool for Android native system services with four components: interface collector, interface model extractor, dependency inferer, and fuzzer engine.

JavaScript

Firmware

Hypervisor

CPU

  • DifuzzRTL - A differential fuzz testing approach for CPU verification.
  • MorFuzz - A generic RISC-V processor fuzzing framework that can efficiently detect software triggerable functional bugs.
  • SpecFuzz - A tool to enable fuzzing for Spectre vulnerabilities.
  • Transynther - Automatically generates and tests building blocks for Meltdown attacks with various faults and microcode assists.

Lib

Web

  • TEFuzz - A tailored fuzzing-based framework to facilitate the detection and exploitation of template escape bugs.
  • Witcher - A web application fuzzer that utilizes mutational fuzzing to explore web applications and fault escalation to detect command and SQL injection vulnerabilities.
  • CorbFuzz - A state-aware fuzzer for generating as many responses from a web application as possible without need of setting up a database.

DOM

Argument

Blockchain

  • Fluffy - A multi-transaction differential fuzzer for finding consensus bugs in Ethereum.
  • LOKI - A Blockchain consensus protocol fuzzing framework that detects consensus memory related and logic bugs.

DBMS

  • Squirrel - A fuzzer for database management systems (DBMSs).

Contribute

Contributions welcome! Read the contribution guidelines first.

About

A curated list of awesome Fuzzing(or Fuzz Testing) for software security

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors