Skip to main content

cargo-fuzz

cargo-fuzz

Catalogue généré le 2026-05-11

En une phrase

cargo-fuzz isest thel'outil deofficiel factopour fuzzingfuzzer toolun forprojet Rust projects: usingil bombarde tes fonctions Rust avec des entrées aléatoires pour trouver les bugs cachés, en une seule commande Cargo.

Quand l'utiliser

  • UseFuzzer forun fuzzingprojet Rust qui utilise Cargo (l'outil de build standard).
Tester un crate Rust avant publication sur crates.io. Tester du code withRust libFuzzerqui backend.contient des blocs unsafe (sensibles à la mémoire). Tester un parseur Rust ou une fonction de désérialisation. Quand tu veux activer un sanitizer (AddressSanitizer) facilement avec Rust.

Comment l'invoquer

  • Slash command : /cargo-fuzz (si exposé dans ton CLI)
  • Phrases déclencheurs (texte) : voir"fuzz laRust descriptionproject", complète"cargo ci-dessousfuzz target", "Rust fuzzing"
  • Auto-invocation : surSur demande explicite

Description complètedétaillée

cargo-fuzzfuzz, isc'est thele standard de factofait fuzzingpour toolfuzzer fordu code Rust projectsquand usingtu Cargo.utilises UseCargo for(le fuzzinggestionnaire de paquets et de build de Rust). Il s'utilise comme une sous-commande Cargo : cargo fuzz init, cargo fuzz run mon_test, et voilà. Sous le capot, il utilise libFuzzer comme moteur, mais tout est branché automatiquement avec les bons flags de compilation pour Rust.

Rust est censé être un langage "memory safe" par défaut, donc tu pourrais te dire "à quoi bon fuzzer ?". Réponse : Rust empêche les bugs mémoire classiques, mais il reste plein d'autres bugs possibles. Tes parseurs peuvent paniquer sur une entrée tordue, ta logique de validation peut avoir des trous, et si tu utilises des blocs unsafe, là toutes les protections sautent. cargo-fuzz t'aide à trouver tout ça.

Tu écris un petit fichier fuzz_target! qui reçoit des bytes aléatoires, tu lances la commande, et l'outil tourne en boucle en générant des entrées de plus en plus exotiques jusqu'à trouver un crash. Le support des sanitizers (comme AddressSanitizer) est intégré, ce qui est très utile pour le code with libFuzzer backend.unsafe.

Pour aller plus loin

cargo-fuzz

Pour

cargo-fuzzles isexemples theconcrets, options de factoconfiguration choiceet forpatterns fuzzing Rust projects when using Cargo. It uses libFuzzer as the backend and provides a convenient Cargo subcommand that automatically enables relevant compilation flags for your Rust project, including support for sanitizers like AddressSanitizer.

When to Use

cargo-fuzz is currently the primary and most mature fuzzing solution for Rust projects using Cargo.

Fuzzer Best For Complexity cargo-fuzz Cargo-based Rust projects, quick setup Low AFL++ Multi-core fuzzing, non-Cargo projects Medium LibAFL Custom fuzzers, research, advanced use cases High

Choose cargo-fuzz when:

    Your project uses Cargo (required) You want simple, quick setup with minimal configuration You need integrated sanitizer support You're fuzzing Rust code with or without unsafe blocks

    Quick Start

    (extrait —avancés, voir le SKILL.md complet pour la suite)original.

    Source

    • Plugin : trailofbits/testing-handbook-skills
    • Nom interne : cargo-fuzz
    • Fichier : /home/thymon/.claude/plugins/cache/trailofbits/testing-handbook-skills/1.0.1/skills/cargo-fuzz/SKILL.md