FUZZ(1)
β¨ FUZZ β stress test programs β¨
okay so bestie, welcome to FUZZ(1) from the General Commands Manual β section 1, the commands section, we love her, she's iconic. sit down, grab a strawberry π, and let's talk about throwing garbage at other programs on purpose. it's giving chaotic good and i'm obsessed.
πΈ NAME πΈ
fuzz β stress test programs π«Ά
π SYNOPSIS π
fuzz [-t|--timeout timeinsecs] [-p|--printable] [-n|--newlines N]
[-l|--length totlen] [-m|--maxline maxlinelen] [-r|--runcount numruns]
[-b|--bytes] [-c|--chroot] [-u|--user username] [-a|--args]
[-o|--omitdata] [-e|--execute filename] [-x|--maxargs numargs]
[-d|--dontask] [-y|--mararglen arglen] [-V|--version] [-i|--priority]
target targetarg...
π DESCRIPTION π
fuzz is a program whose whole entire job is finding bugs in other programs. and the way she does it? black box testing, periodt. she runs the target program multiple times and feeds it random input every single time and justβ¦ watches what happens. the drama. π
right now that random input can come from one of two places, no cap:
stdin- the command line arguments
testing is done when either the requested number of runs finishes successfully, or the program crashes. those are the two ways this ends, bestie. π
any arguments that come after the target program get passed directly to the target program. no middleman, no editing, just vibes.
β οΈ NOTE: if the program is not in PATH, you gotta refer to it using an absolute path. she's not psychic. π§
π OPTIONS π
-a,--argsβ in addition to passing random data throughstdin, she'll also pass random command line arguments. this one just sets the number of random arguments to be passed to256. go read the BUGS section, i'm begging you. π-b,--bytesβ besides counting through the number of runs, she'll also count through the bytes being sent throughstdinto the program. honestly? this option really serves no purpose other than making something interesting to watch. and honestly? valid. π-c,--chrootβ since there is no telling what a program will do when you hand it random input, this lets a program be sort of caged while it runs so the damage it might be able to do is minimized. this requires thatfuzzbe run as root. it will drop privileges before it runs the test program. this option is best used in conjunction with the--useroption. this often times requires that a program is statically linked. π«Ά-d,--dontaskβ for the cases where the target program is for sure part of a package and the packaging information will provide the needed version information, you can use this to avoid being asked what the version is. she's skipping the small talk. π-i,--priorityβ run at a specified priority. that's it, that's the whole thing. β¨-l,--length LENGTHβ the length in bytes of the data stream to pass throughstdininto the target program. the default length is100K. big stream energy. π-m,--maxline MAXLINELENβ specify the maximum line length within the random data stream passed intostdin. keep those lines in check bestie. π-n,--newlines Nβ include randomNnewlines in the input stream. sprinkle sprinkle. π§οΈ-o,--omitdataβ some programs don't take input fromstdinat all, they only take input from the command line arguments. if that's the case, simply use--omitdataand skip the stdin situation entirely. π ββοΈ-p,--printableβ this limits both thestdinand the command line arguments to only printable characters. by defaultfuzzpasses fully random bytes into the target program. fully. random. bytes. π-r,--runcount RUNCOUNTβ the number of times to run the target program. the default is10,000. ten thousand little chaos gremlin runs. π₯-t,--timeout TIMEβ this sets the number of seconds thatfuzzwill wait for the other program before it assumes the program is hung. the default value is120seconds. this sensing of when a program is hung is not entirely reliable β go check the BUGS section, i mean it. π-u,--user USERNAMEβ since there is no telling what a program will do when given random input, this specifies what user the target program will be run as, so that it's easy to find and repair anything that may have been scribbled across your file system. this option was designed to be used in conjunction with the--chrootoption and will only work iffuzzis run as root. π§-V,--versionβ print the version offuzzand exit. short, sweet, iconic. β¨-x. --maxargs NUMARGSβ this is to set the maximum number of arguments that are passed to each invocation of the target program. (yes bestie, the punctuation up there is exactly how she wrote it. we love her, typos and all. π )-y,--maxarglen ARGLENβ sets the maximum length of an argument passed to the target program. long args? not on her watch. π
π EXAMPLES π
check grep:
fuzz grep foo
run a program with a different user:
fuzz --chroot --user nobody cpio -i
when the program is not in path, use the absolute path to access it:
fuzz ./src/myprogram
π BUGS π
the random arg functions doesn't work very well right now, bestie, i'm not gonna lie to you. the arguments passed are so random that the program usually just prints out the usage message and then terminates. π
this will become much more useful later when they are mating data sets with the intention of maximizing code coverage. the future is coming, we're just not there yet. π¦
π«Ά AUTHORS π«Ά
Ben Woodard <ben@valinux.com> β the main character who wrote all this. π
and that's the page, bestie!! this one's from the 3rd Berkeley Distribution, dated November 3, 1999 β vintage, retro, still serving. go fuzz something responsibly. πβ¨π
π¦ where this page comes from
- debian bookworm: fuzz 0.6-19.1 Β· GPL-2.0-or-later
- debian trixie: fuzz 0.6-19.1 Β· GPL-2.0-or-later
- ubuntu jammy: fuzz 0.6-19ubuntu1 Β· GPL-2.0-or-later
- ubuntu noble: fuzz 0.6-19.1 Β· GPL-2.0-or-later
- ubuntu questing: fuzz 0.6-19.1
- ubuntu resolute: fuzz 0.6-20 Β· GPL-2.0-or-later
- ubuntu stonking: fuzz 0.6-20 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms