Skip to main content

Type-Coercion Fuzzers

These fuzzers send a value using a representation different from the OpenAPI schema, targeting frameworks that silently coerce request input. They are part of the type-coercion profile and are included in a full run.

The default expectation is 4XX, because strict validation should reject the wrong representation. Use --no-strictTypes when the API intentionally accepts the conversion and a 2XX response is valid.

Full Fuzzer NameLog KeyEnabled by default?Target field typesExpected resultFuzzing logicConditions when skippedHTTP methods skippedReporting
AlternativeDateTimeFormatsFieldsFuzzerN/AYes in the type-coercion, coverage, crash, and full profilesdate-time fields4XX by default; 2XX or 4XX with --no-strictTypesSends ISO local date (yyyy-MM-dd) and offset-less local date-time (yyyy-MM-dd'T'HH:mm:ss, yyyy-MM-dd HH:mm:ss) formats in date-time fields.Empty payloads or requests without date-time fields.HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
BooleanStringInBooleanFieldsFuzzerN/AYes in the type-coercion and full profilesBoolean fields4XX by default; 2XX with --no-strictTypesSends true and false as strings.Non-boolean fields, enums, discriminators, and reference data.GET, DELETE, HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
BooleanValuesInStringFieldsFuzzerN/AYes in the type-coercion and full profilesString fields4XX by default; 2XX with --no-strictTypesSends boolean values to string fields.Non-string fields, enums, discriminators, and reference data.GET, DELETE, HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
EnumNumericOrdinalFieldsFuzzerN/AYes in the type-coercion and full profilesEnum fields4XX by default; 2XX with --no-strictTypesSends the numeric ordinal of an enum value.Non-enum fields, unsupported enum values, discriminators, and reference data.HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
EpochNumberInDateTimeFieldsFuzzerN/AYes in the type-coercion, crash, and full profilesdate-time fields4XX by default; 2XX with --no-strictTypesSends an epoch number to a date-time field.Fields without the date-time format, discriminators, and reference data.HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
LeadingZerosInNumericFieldsFuzzerN/AYes in the type-coercion and full profilesNumeric and integer fields4XX by default; 2XX with --no-strictTypesSends valid numeric values encoded with leading zeros.Non-numeric fields, values that cannot be represented with leading zeros, and reference data.HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
NumericBooleansInBooleanFieldsFuzzerN/AYes in the type-coercion and full profilesBoolean fields4XX by default; 2XX with --no-strictTypesSends 0 and 1 as boolean representations.Non-boolean fields, enums, discriminators, and reference data.GET, DELETE, HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
NumericStringsInNumericFieldsFuzzerN/AYes in the type-coercion and full profilesNumeric and integer fields4XX by default; 2XX with --no-strictTypesSends numeric values encoded as strings.Non-numeric fields, enums, discriminators, and reference data.GET, DELETE, HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
NumericValuesInStringFieldsFuzzerN/AYes in the type-coercion, quick, ci, coverage, crash, and full profilesRequest body string fields4XX by default; 2XX with --no-strictTypesSends unquoted numeric values (including 64-bit integers) to string fields.Non-string fields, URL path/query parameters, enums, discriminators, and reference data.GET, DELETE, HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
ScientificNotationStringsInDecimalFieldsFuzzerN/AYes in the type-coercion and full profilesDecimal and floating-point fields4XX by default; 2XX with --no-strictTypesSends scientific-notation values encoded as strings.Non-decimal fields, unsupported formats, and reference data.HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
SingleElementArrayToScalarFieldsFuzzerN/AYes in the type-coercion and full profilesPrimitive fields4XX by default; 2XX with --no-strictTypesWraps a valid primitive value in a single-element array.Non-primitive fields, discriminators, and reference data.GET, DELETE, HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
SmallNegativeAndInt32BoundaryFieldsFuzzerN/AYes in the quick, ci, crash, and full profilesInteger and numeric fields (including query parameters)4XX when the value violates declared schema minimum/maximum bounds (with --strictTypes); 2XX or 4XX otherwiseSends 0, -1, and Integer.MAX_VALUE (2147483647) to integer and numeric fields so values pass 32-bit deserialization and reach controller/service boundary checks.Non-numeric fields, enums, discriminators, and reference data.HEAD, TRACEFollows normal CATS reporting against the expected response family.
SpecialFloatTokensInNumericFieldsFuzzerN/AYes in the type-coercion, ci, crash, and full profilesnumber and float/double fields4XX by default; 2XX or 4XX with --no-strictTypesSends IEEE-754 special floating-point string tokens ("NaN", "Infinity", "-Infinity") to detect lenient float-parser coercion and downstream arithmetic or database crashes.Non-number fields, enums, discriminators, and reference data.HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
WhitespacePaddedNumericFieldsFuzzerN/AYes in the type-coercion and full profilesNumeric and integer fields4XX by default; 2XX with --no-strictTypesSends numeric values padded with whitespace.Non-numeric fields, values that cannot be padded, and reference data.HEAD, TRACEFollows normal CATS reporting against the configured expected response family.
  • AlternativeDateTimeFormatsFields sends ISO local date (yyyy-MM-dd) and offset-less local date-time (yyyy-MM-dd'T'HH:mm:ss and yyyy-MM-dd HH:mm:ss) strings to date-time fields.
  • BooleanStringInBooleanFields sends true/false as strings to boolean fields.
  • BooleanValuesInStringFields sends boolean values to string fields.
  • EnumNumericOrdinalFields sends numeric enum ordinals to enum fields.
  • EpochNumberInDateTimeFields sends epoch numbers to date-time fields.
  • LeadingZerosInNumericFields sends numeric values with leading zeros.
  • NumericBooleansInBooleanFields sends 0/1 representations to boolean fields.
  • NumericStringsInNumericFields sends numeric values as strings.
  • NumericValuesInStringFields sends numeric values to string fields.
  • ScientificNotationStringsInDecimalFields sends scientific-notation values as strings to decimal fields.
  • SingleElementArrayToScalarFields wraps primitive values in a single-element array.
  • SmallNegativeAndInt32BoundaryFields sends 0, -1, and Integer.MAX_VALUE (2147483647) to integer and numeric fields.
  • SpecialFloatTokensInNumericFields sends IEEE-754 "NaN", "Infinity", and "-Infinity" tokens to numeric fields.
  • WhitespacePaddedNumericFields sends numeric values padded with whitespace.

List the profile and all exact registered names with:

cats list --profiles
cats list --fuzzers