Skip to main content

Duplicate Keys Fields Fuzzer

ItemDescription
Full Fuzzer NameDuplicateKeysFieldsFuzzer
Log KeyDKF
DescriptionThis fuzzer tests JSON parsing robustness by sending payloads where the same JSON key appears twice within the same object (e.g. {"id":1,"id":"catsFuzzyDup"}). It detects first-wins / last-wins ambiguities and inconsistent JSON parser behavior, which can lead to authorization bypasses, data corruption, or logic flaws, as described in RFC 8259.
Enabled by default?Yes
Target field typesAny JSON field (object members), regardless of schema type
Expected result when fuzzed field is required4XX
Expected result when fuzzed field is optional4XX
Expected result when fuzzed value is not matching field pattern4XX
Fuzzing logicIteratively duplicates each JSON key in the request payload while keeping the original structure intact:

1. Traverses the JSON payload and identifies each field path up to a maximum nesting depth of 5 levels.
2. For each eligible field, rewrites the JSON so that the target key appears twice in its parent object, placing the duplicate immediately after the original.
3. The duplicated key is assigned a fixed value "catsFuzzyDup".
4. Arrays are traversed recursively, preserving their structure.
5. A maximum of 100 duplicated-field mutations per request is enforced to limit execution time.
6. The resulting payload is sent as intentionally invalid JSON (validJson=false) to test parser behavior.
Conditions when this fuzzer will be skippedWhen the request payload is empty, OR the field does not exist in the payload, OR the field nesting depth exceeds 5 levels, OR a duplicated payload cannot be generated for the given field.
HTTP methods that will be skippedGET, DELETE, HEAD
ReportingReports error if:
1. The service accepts the request instead of rejecting the duplicated key payload.
2. The response code is not in the expected 4XX family.

Reports success if:
1. The service correctly rejects the request with a documented 4XX response, indicating proper handling of duplicate JSON keys.