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 Name | Log Key | Enabled by default? | Target field types | Expected result | Fuzzing logic | Conditions when skipped | HTTP methods skipped | Reporting |
|---|---|---|---|---|---|---|---|---|
AlternativeDateTimeFormatsFieldsFuzzer | N/A | Yes in the type-coercion, coverage, crash, and full profiles | date-time fields | 4XX by default; 2XX or 4XX with --no-strictTypes | Sends 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, TRACE | Follows normal CATS reporting against the configured expected response family. |
BooleanStringInBooleanFieldsFuzzer | N/A | Yes in the type-coercion and full profiles | Boolean fields | 4XX by default; 2XX with --no-strictTypes | Sends true and false as strings. | Non-boolean fields, enums, discriminators, and reference data. | GET, DELETE, HEAD, TRACE | Follows normal CATS reporting against the configured expected response family. |
BooleanValuesInStringFieldsFuzzer | N/A | Yes in the type-coercion and full profiles | String fields | 4XX by default; 2XX with --no-strictTypes | Sends boolean values to string fields. | Non-string fields, enums, discriminators, and reference data. | GET, DELETE, HEAD, TRACE | Follows normal CATS reporting against the configured expected response family. |
EnumNumericOrdinalFieldsFuzzer | N/A | Yes in the type-coercion and full profiles | Enum fields | 4XX by default; 2XX with --no-strictTypes | Sends the numeric ordinal of an enum value. | Non-enum fields, unsupported enum values, discriminators, and reference data. | HEAD, TRACE | Follows normal CATS reporting against the configured expected response family. |
EpochNumberInDateTimeFieldsFuzzer | N/A | Yes in the type-coercion, crash, and full profiles | date-time fields | 4XX by default; 2XX with --no-strictTypes | Sends an epoch number to a date-time field. | Fields without the date-time format, discriminators, and reference data. | HEAD, TRACE | Follows normal CATS reporting against the configured expected response family. |
LeadingZerosInNumericFieldsFuzzer | N/A | Yes in the type-coercion and full profiles | Numeric and integer fields | 4XX by default; 2XX with --no-strictTypes | Sends valid numeric values encoded with leading zeros. | Non-numeric fields, values that cannot be represented with leading zeros, and reference data. | HEAD, TRACE | Follows normal CATS reporting against the configured expected response family. |
NumericBooleansInBooleanFieldsFuzzer | N/A | Yes in the type-coercion and full profiles | Boolean fields | 4XX by default; 2XX with --no-strictTypes | Sends 0 and 1 as boolean representations. | Non-boolean fields, enums, discriminators, and reference data. | GET, DELETE, HEAD, TRACE | Follows normal CATS reporting against the configured expected response family. |
NumericStringsInNumericFieldsFuzzer | N/A | Yes in the type-coercion and full profiles | Numeric and integer fields | 4XX by default; 2XX with --no-strictTypes | Sends numeric values encoded as strings. | Non-numeric fields, enums, discriminators, and reference data. | GET, DELETE, HEAD, TRACE | Follows normal CATS reporting against the configured expected response family. |
NumericValuesInStringFieldsFuzzer | N/A | Yes in the type-coercion, quick, ci, coverage, crash, and full profiles | Request body string fields | 4XX by default; 2XX with --no-strictTypes | Sends 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, TRACE | Follows normal CATS reporting against the configured expected response family. |
ScientificNotationStringsInDecimalFieldsFuzzer | N/A | Yes in the type-coercion and full profiles | Decimal and floating-point fields | 4XX by default; 2XX with --no-strictTypes | Sends scientific-notation values encoded as strings. | Non-decimal fields, unsupported formats, and reference data. | HEAD, TRACE | Follows normal CATS reporting against the configured expected response family. |
SingleElementArrayToScalarFieldsFuzzer | N/A | Yes in the type-coercion and full profiles | Primitive fields | 4XX by default; 2XX with --no-strictTypes | Wraps a valid primitive value in a single-element array. | Non-primitive fields, discriminators, and reference data. | GET, DELETE, HEAD, TRACE | Follows normal CATS reporting against the configured expected response family. |
SmallNegativeAndInt32BoundaryFieldsFuzzer | N/A | Yes in the quick, ci, crash, and full profiles | Integer and numeric fields (including query parameters) | 4XX when the value violates declared schema minimum/maximum bounds (with --strictTypes); 2XX or 4XX otherwise | Sends 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, TRACE | Follows normal CATS reporting against the expected response family. |
SpecialFloatTokensInNumericFieldsFuzzer | N/A | Yes in the type-coercion, ci, crash, and full profiles | number and float/double fields | 4XX by default; 2XX or 4XX with --no-strictTypes | Sends 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, TRACE | Follows normal CATS reporting against the configured expected response family. |
WhitespacePaddedNumericFieldsFuzzer | N/A | Yes in the type-coercion and full profiles | Numeric and integer fields | 4XX by default; 2XX with --no-strictTypes | Sends numeric values padded with whitespace. | Non-numeric fields, values that cannot be padded, and reference data. | HEAD, TRACE | Follows normal CATS reporting against the configured expected response family. |
AlternativeDateTimeFormatsFieldssends ISO local date (yyyy-MM-dd) and offset-less local date-time (yyyy-MM-dd'T'HH:mm:ssandyyyy-MM-dd HH:mm:ss) strings todate-timefields.BooleanStringInBooleanFieldssendstrue/falseas strings to boolean fields.BooleanValuesInStringFieldssends boolean values to string fields.EnumNumericOrdinalFieldssends numeric enum ordinals to enum fields.EpochNumberInDateTimeFieldssends epoch numbers to date-time fields.LeadingZerosInNumericFieldssends numeric values with leading zeros.NumericBooleansInBooleanFieldssends0/1representations to boolean fields.NumericStringsInNumericFieldssends numeric values as strings.NumericValuesInStringFieldssends numeric values to string fields.ScientificNotationStringsInDecimalFieldssends scientific-notation values as strings to decimal fields.SingleElementArrayToScalarFieldswraps primitive values in a single-element array.SmallNegativeAndInt32BoundaryFieldssends0,-1, andInteger.MAX_VALUE(2147483647) to integer and numeric fields.SpecialFloatTokensInNumericFieldssends IEEE-754"NaN","Infinity", and"-Infinity"tokens to numeric fields.WhitespacePaddedNumericFieldssends numeric values padded with whitespace.
List the profile and all exact registered names with:
cats list --profiles
cats list --fuzzers