Drifter is an extensible fuzzing framework written in Rust. It's designed for high performance and reliability, with an initial focus on uncovering vulnerabilities in stateful network protocol implementations.
Warning
This fuzzing framework is in an early development phase. The API is unstable, features are incomplete, and breaking changes should be expected.
- Provide a versatile foundation for fuzzing diverse targets (libraries, binaries, network protocols).
- Excel at modeling protocol state machines and generating contextually valid message sequences for deep bug discovery.
- Be a reliable, performant, and developer-friendly tool for security researchers and software developers.
- Extensible Architecture: Modular, trait-based design for core components (Mutators, Executors, Schedulers, Oracles, Corpus, Feedback).
- Stateful Fuzzing Focus: Specialized components for managing protocol state (
StateManager
) and generating state-aware inputs. Drifter is actively being developed with Rohcstar as a primary test target to drive and validate these capabilities against a real-world network protocol. - Performance: Built in Rust, leveraging
async
for I/O-bound operations. - Reproducibility: Deterministic fuzzing runs (given a seed and configuration).
- Comprehensive Testing: Includes unit, integration, snapshot, property-based, and deterministic simulation testing (DST) for core logic.
For an in-depth understanding of Drifter's architecture, components, and roadmap, please refer to the DESIGN_DOCUMENT.md.
Drifter is licensed under the MIT License.