{"record":{"id":"e6f039387e41e0c6","repo":"projectdiscovery/nuclei","slug":"no-fuzz-values-specified","errorCode":null,"errorMessage":"no fuzz values specified","messagePattern":"no fuzz values specified","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/fuzz/execute.go","lineNumber":451,"sourceCode":"\t\t\tif gotErr != nil {\n\t\t\t\treturn gotErr\n\t\t\t}\n\n\t\t\treq, err := ruleComponent.Rebuild()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif gotErr := rule.execWithInput(input, req, input.InteractURLs, ruleComponent, \"\", \"\", \"\", \"\", \"\", \"\"); gotErr != nil {\n\t\t\t\treturn gotErr\n\t\t\t}\n\t\t}\n\n\t\treturn gotErr\n\t}\n\n\t// something else is wrong\n\treturn fmt.Errorf(\"no fuzz values specified\")\n}\n\n// Compile compiles a fuzzing rule and initializes it for operation\nfunc (rule *Rule) Compile(generator *generators.PayloadGenerator, options *protocols.ExecutorOptions) error {\n\t// If a payload generator is specified from base request, use it\n\t// for payload values.\n\tif generator != nil {\n\t\trule.generator = generator\n\t}\n\trule.options = options\n\n\t// Resolve the default enums\n\tif rule.Mode != \"\" {\n\t\tif valueType, ok := stringToModeType[rule.Mode]; !ok {\n\t\t\treturn errors.Errorf(\"invalid mode value specified: %s\", rule.Mode)\n\t\t} else {\n\t\t\trule.modeType = valueType\n\t\t}","sourceCodeStart":433,"sourceCodeEnd":469,"githubUrl":"https://github.com/projectdiscovery/nuclei/blob/265b3a3dec374741614e342f813c10f8b38d2bb7/pkg/fuzz/execute.go#L433-L469","documentation":"Returned by fuzz.Rule.executeRuleValues (pkg/fuzz/execute.go) when a fuzzing rule is executed against a request component but carries no payloads: the template's `fuzz:` payload block (a SliceOrMapSlice on the rule, fuzz/fuzz.go:92) parsed into neither a string list (rule.Fuzz.Value) nor a key:value map (rule.Fuzz.KV). With nothing to substitute into the fuzzed parameter/header/cookie, nuclei cannot build a mutated request and aborts the rule with this error.","triggerScenarios":"Executing a fuzz template whose rule entry has an empty, null, or missing `fuzz:` payload list (the rule has param/mode/type but no payloads); creating a fuzz.Rule in Go and calling Execute without setting Fuzz and without a payload generator passed to Compile; a payloads/attack block that compiles but generates zero value combinations so Fuzz is never populated.","commonSituations":"Template author scaffolds a dast/fuzz block and forgets the payload list; YAML indentation drifts so the payload values sit under a sibling key and `fuzz:` itself is empty; payloads referenced via generator DSL but the base request has no payloads section so the generator is nil; editing a copied template and deleting the values.","solutions":["Open the failing template and give the fuzz rule entry a `fuzz:` block containing either a list of strings or a key:value map","Run `nuclei -validate -t <template.yaml>` to catch empty fuzz blocks before execution","If payloads come from a generator (top-level payloads + attack), verify the payloads block exists on the request and actually yields values, since the generator feeds rule.Fuzz at Compile time","When driving fuzz.Rule programmatically, assert len(rule.Fuzz.Value) > 0 || rule.Fuzz.KV != nil before calling Execute"],"exampleFix":"# before (fuzz rule with no payloads -> no fuzz values specified)\nfuzz:\n  - type: parameter\n    param: username\n    mode: single\n    fuzz: []\n\n# after\nfuzz:\n  - type: parameter\n    param: username\n    mode: single\n    fuzz:\n      - \"'\"\n      - \"admin'--\"\n\n# after (key:value form)\n    fuzz:\n      username: admin\n      password: password","handlingStrategy":"validation","validationCode":"for _, r := range fuzzRules {\n    if len(r.Fuzz.Value) == 0 && r.Fuzz.KV == nil {\n        return fmt.Errorf(\"fuzz rule on %q has no payloads; add a fuzz value list or key:value map\", r.Param)\n    }\n}","typeGuard":"func fuzzRuleArmed(rule *fuzz.Rule) bool {\n    return rule != nil && (len(rule.Fuzz.Value) > 0 || rule.Fuzz.KV != nil)\n}","tryCatchPattern":"if err := rule.Execute(input); err != nil {\n    if strings.Contains(err.Error(), \"no fuzz values specified\") {\n        gologger.Warning().Msg(\"skipping unarmed fuzz rule\")\n        continue\n    }\n    return err\n}","preventionTips":["Validate dast/fuzz templates with `nuclei -validate` in CI before execution","Keep the fuzz payload list or key:value map directly under each fuzz rule entry","When payloads are generator-driven, verify the payloads block produces at least one value"],"tags":["fuzz","yaml","template","dast","config"],"backgroundTag":null,"analyzedSha":"265b3a3dec374741614e342f813c10f8b38d2bb7","analyzedAt":"2026-08-15T20:05:51.855Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}