🚀 Submit a Challenge — SecDim AppSec Village CTF at DEF CON 34 and Win a ROG Xbox Ally

Fuzzing with AI

5h 55mAdvancedFuzzingAI

Fuzzing finds the vulnerabilities that code review, security tests, and static analysis miss -- the ones that only surface under inputs no developer would write by hand. This course teaches coverage-guided fuzzing, property-based testing, and API fuzzing from first principles, then shows how to use AI to generate harnesses, seed corpora, and property suites at a scale no individual engineer can match manually. By the end you will know how to fuzz any Python target, read a fuzzer's output, triage its findings, and wire the whole process into a CI pipeline -- with and without an AI assistant.

Topics

  1. Introduction

    Lesson5m

    Overview of the course, learning objectives and syllabus

  2. The Fuzzing Landscape

    Lesson20m

    A map of the fuzzing field: what coverage-guided, property-based, and API fuzzing are, how they differ across three key axes, and which technique fits which target.

  3. Writing Fuzz Harnesses

    Lesson20m

    The anatomy of a harness: entry point, typed input generation with FuzzedDataProvider, exception handling rules, instrumentation scope, and the state reset requirement. Includes the common patterns that make harnesses ineffective.

  4. Coverage-Guided Fuzzing Lab

    Lab30m

    Build an Atheris fuzz harness for a JSON payment parser, fix its exception handling so the fuzzer can report findings, and convert the crash into a regression test.

  5. Property-Based Testing

    Lesson25m

    The six property patterns (invariant, round-trip, idempotence, different paths, hard to prove/easy to verify, test oracle) applied to security bugs. Hypothesis strategies, shrinking, and the property-to-Hypothesis translation for each pattern. Includes parser differential attacks as a concrete application of the oracle pattern.

  6. Property-Based Fuzzing

    Lesson20m

    Combining Hypothesis and Atheris to get both coverage guidance and a property oracle. The fuzz_one_input integration, the InMemoryExampleDatabase tradeoff, and the two-step workflow: run the fuzzer to find, switch to plain Hypothesis to shrink.

  7. Property-Based Fuzzing Lab

    Lab30m

    Apply all six property patterns to a payment threshold function, run Hypothesis to find an int32 overflow the fuzzer cannot surface alone, and write a regression test from the shrunk failing example.

  8. API Fuzzing

    Lesson20m

    Schema-driven fuzzing with Schemathesis from the simplest parametrize call through custom security checks for information disclosure, broken access control, and schema pattern overrides. Includes stateful multi-step test sequences and an honest account of what schema-driven fuzzing cannot reach.

  9. Bug Triage, Minimisation, and Regression Prevention

    Lesson20m

    How to reproduce a fuzzer crash deterministically, reduce it to its minimal form, decide whether it is a security bug, convert it into a regression test, and integrate fuzzing into a CI pipeline.

  10. API Fuzzing Lab

    Lab30m

    Use Schemathesis to fuzz a payment processing API, write a custom check to detect information disclosure the default oracle misses, and override schema-driven input generation to expose a ReDoS vulnerability.

  11. AI-Generated Fuzz Harnesses

    Lesson25m

    Writing prompts that produce usable harnesses from function signatures, docstrings, and existing tests. Three-iteration worked example from minimal context to a coverage-verified harness. Using unit and integration tests as prompt context to generate seeds and exception handling automatically.

  12. AI-Driven Corpus and Seed Generation

    Lesson20m

    Using an LLM to generate semantically meaningful seeds for known formats (JWT, JSON, custom binary), edge-case dictionaries that go beyond hand-written token lists, and measuring coverage impact before committing to a seed set.

  13. AI-Assisted Property Discovery

    Lesson20m

    Prompting an LLM with function source code to generate candidate security properties, evaluating each property for soundness, and identifying the property categories the model consistently misses without explicit prompting.

  14. AI-Assisted Fuzzing Lab

    Lab30m

    Use an AI assistant to generate a fuzz harness, a seed corpus, and property-based tests for the same payment module. Evaluate each output against the module 11 checklist, identify what the AI gets wrong without context, and improve it.

  15. Tuning AI-Generated Harnesses

    Lesson20m

    A six-item checklist applied to a single broken AI-generated harness: exception scope, instrumentation scope, target depth, shared state, oracle strength, and I/O in the loop. Before/after coverage comparison showing the measurable impact of each fix.

  16. Automated AI Fuzzing at Scale

    Lesson20m

    How OSS-Fuzz-Gen generates and validates harnesses at scale, the published accuracy rates and failure modes, a five-stage automated validation pipeline with working code for each gate, and which parts of the fuzzing workflow still require human judgment.