Compliance Test Summary

CategoryCount
Total215
Passed109
Failed49
Warnings57
Errors0

Failed or Warning Results

IDCategoryVerdictDescription
CAP-ETAG-304CapabilitiesWarnETag conditional GET returns 304 Not Modified
CAP-ETAG-IN-304CapabilitiesWarn304 response includes ETag header
CAP-ETAG-WEAKCapabilitiesWarnWeak ETag comparison for GET
CAP-INM-PRECEDENCECapabilitiesWarnIf-None-Match takes precedence over If-Modified-Since
CAP-INM-UNQUOTEDCapabilitiesWarnIf-None-Match with unquoted ETag
CAP-INM-WILDCARDCapabilitiesWarnIf-None-Match: * on existing resource returns 304
CAP-LAST-MODIFIED-304CapabilitiesWarnLast-Modified conditional GET returns 304 Not Modified
COMP-405-ALLOWComplianceWarn405 response must include an Allow header
COMP-ACCEPT-NONSENSEComplianceWarnUnrecognized Accept value — server may return 406 or default representation
COMP-ASTERISK-WITH-GETComplianceFailAsterisk-form (*) request-target with GET must be rejected
COMP-CHUNKED-NO-FINALComplianceFailChunked body without zero terminator — incomplete transfer
COMP-CHUNKED-TRAILER-VALIDComplianceFailValid chunked body with trailer field should be accepted
COMP-DUPLICATE-CTComplianceWarnDuplicate Content-Type headers with different values
COMP-DUPLICATE-HOST-SAMEComplianceFailDuplicate Host headers with identical values must be rejected
COMP-EXPECT-UNKNOWNComplianceWarnUnknown Expect value should be rejected with 417
COMP-GET-WITH-CL-BODYComplianceWarnGET with Content-Length and body — semantically unusual
COMP-HEAD-NO-BODYComplianceFailHEAD response must not contain a message body
COMP-HOST-EMPTY-VALUEComplianceFailEmpty Host header value must be rejected
COMP-HOST-WITH-PATHComplianceFailHost header with path component must be rejected
COMP-HOST-WITH-USERINFOComplianceFailHost header with userinfo (user@host) must be rejected
COMP-HTTP10-NO-HOSTComplianceWarnHTTP/1.0 without Host header — valid per HTTP/1.0
COMP-LEADING-CRLFComplianceWarnLeading CRLF before request-line — server may ignore per RFC
COMP-METHOD-CASEComplianceFailLowercase method ‘get’ — methods are case-sensitive per RFC
COMP-METHOD-TRACEComplianceFailTRACE request — should be disabled in production
COMP-NO-CL-IN-204ComplianceWarnServer must not send Content-Length in a 204 response
COMP-OPTIONS-ALLOWComplianceFailOPTIONS response should include Allow header listing supported methods
COMP-OPTIONS-STARComplianceFailOPTIONS * is the only valid asterisk-form request
COMP-POST-CL-UNDERSENDComplianceFailPOST with Content-Length: 10 but only 5 bytes sent — incomplete body
COMP-REQUEST-LINE-TABComplianceWarnTab as request-line delimiter — SHOULD reject but MAY parse on whitespace
COMP-SPACE-IN-TARGETComplianceWarnWhitespace inside request-target is invalid
COMP-TRACE-SENSITIVEComplianceFailTRACE should exclude sensitive headers from echoed response
COMP-TRACE-WITH-BODYComplianceFailTRACE with Content-Length body should be rejected
COMP-UNKNOWN-METHODComplianceFailUnrecognized method should be rejected with 501 or 405
COMP-VERSION-CASEComplianceWarnHTTP version is case-sensitive — lowercase ‘http’ must be rejected
COMP-VERSION-LEADING-ZEROSComplianceWarnHTTP/01.01 — leading zeros in version digits are invalid
COMP-VERSION-MISSING-MINORComplianceWarnHTTP/1 with no minor version digit is invalid
COMP-VERSION-WHITESPACEComplianceWarnHTTP/ 1.1 — whitespace inside version token is invalid
COOK-CONTROL-CHARSCookiesFailControl characters (0x01-0x03) in cookie value — dangerous if preserved
MAL-CHUNK-EXT-64KMalformedInputWarn64KB chunk extension — tests extension length limits (CVE-2023-39326 class)
MAL-CL-TAB-BEFORE-VALUEMalformedInputWarnContent-Length with tab as OWS — valid per RFC but unusual
MAL-CONTROL-CHARS-HEADERMalformedInputFailControl characters in header value should be rejected
MAL-LONG-HEADER-NAMEMalformedInputFail100KB header name should be rejected with 400/431
MAL-LONG-HEADER-VALUEMalformedInputFail100KB header value should be rejected with 431
MAL-LONG-METHODMalformedInputFail100KB method name should be rejected
MAL-LONG-URLMalformedInputFail100KB URL should be rejected with 414 URI Too Long
MAL-MANY-HEADERSMalformedInputFail10,000 headers should be rejected with 431
MAL-NON-ASCII-URLMalformedInputFailNon-ASCII bytes (UTF-8 é) in URL must be rejected
MAL-NUL-IN-URLMalformedInputFailNUL byte in URL should be rejected
MAL-RANGE-OVERLAPPINGMalformedInputWarn1000 overlapping Range values — resource exhaustion vector (CVE-2011-3192 class)
MAL-URL-BACKSLASHMalformedInputWarnBackslash in URL path — not valid URI character, some servers normalize to /
MAL-URL-OVERLONG-UTF8MalformedInputFailOverlong UTF-8 encoding of / (0xC0 0xAF) in URL must be rejected
MAL-URL-PERCENT-CRLFMalformedInputWarnPercent-encoded CRLF (%0d%0a) in URL — header injection if server decodes during parsing
MAL-URL-PERCENT-NULLMalformedInputWarnPercent-encoded NUL byte (%00) in URL — security risk from null byte injection
NORM-UNDERSCORE-CLNormalizationWarnUnderscore in Content-Length name — checks if server normalizes Content_Length to Content-Length
NORM-UNDERSCORE-TENormalizationWarnUnderscore in Transfer-Encoding name — checks if server normalizes Transfer_Encoding to Transfer-Encoding
RFC9110-5.4-DUPLICATE-HOSTComplianceFailDuplicate Host headers with different values must be rejected
RFC9110-5.6.2-SP-BEFORE-COLONComplianceFailWhitespace between header name and colon must be rejected
RFC9112-2.2-BARE-LF-HEADERComplianceWarnBare LF in header should be rejected, but MAY be accepted
RFC9112-2.2-BARE-LF-REQUEST-LINEComplianceWarnBare LF in request line should be rejected, but MAY be accepted
RFC9112-2.3-INVALID-VERSIONComplianceWarnInvalid HTTP version must be rejected
RFC9112-3-CR-ONLY-LINE-ENDINGComplianceWarnCR without LF as line ending must be rejected
RFC9112-3-MISSING-TARGETComplianceWarnRequest line with no target (space but no path) must be rejected
RFC9112-3-MULTI-SP-REQUEST-LINEComplianceWarnMultiple spaces between request-line components — SHOULD reject but MAY parse leniently
RFC9112-5.1-OBS-FOLDComplianceFailObs-fold (line folding) in headers should be rejected
RFC9112-7.1-MISSING-HOSTComplianceFailRequest without Host header must be rejected with 400
SMUG-ABSOLUTE-URI-HOST-MISMATCHSmugglingWarnAbsolute-form URI with different Host header — routing confusion vector
SMUG-CHUNK-BARE-SEMICOLONSmugglingFailChunk size with bare semicolon and no extension name must be rejected
SMUG-CHUNK-EXT-CTRLSmugglingFailNUL byte in chunk extension must be rejected
SMUG-CHUNK-EXT-INVALID-TOKENSmugglingFailChunk extension with invalid token character must be rejected
SMUG-CHUNK-EXT-LFSmugglingWarnBare LF in chunk extension — server MAY accept bare LF per RFC 9112 §2.2
SMUG-CHUNK-LF-TERMSmugglingWarnBare LF as chunk data terminator — server MAY accept bare LF per RFC 9112 §2.2
SMUG-CHUNK-LF-TRAILERSmugglingWarnBare LF in chunked trailer termination — server MAY accept bare LF per RFC 9112 §2.2
SMUG-CHUNK-MISSING-TRAILING-CRLFSmugglingFailChunk data without trailing CRLF must be rejected
SMUG-CHUNK-SPILLSmugglingFailChunk declares size 5 but sends 7 bytes — oversized chunk data must be rejected
SMUG-CL-DOUBLE-ZEROSmugglingWarnContent-Length: 00 — matches 1*DIGIT but leading zero ambiguity
SMUG-CL-EXTRA-LEADING-SPSmugglingWarnContent-Length with extra leading whitespace (double space OWS)
SMUG-CL-LEADING-ZEROSSmugglingWarnContent-Length with leading zeros — valid per 1*DIGIT grammar but may cause parser disagreement
SMUG-CL-LEADING-ZEROS-OCTALSmugglingWarnContent-Length: 0200 — octal 128 vs decimal 200, parser disagreement vector
SMUG-CL-TE-BOTHSmugglingWarnBoth Content-Length and Transfer-Encoding present — server MAY reject or process with TE alone
SMUG-CL-TRAILING-SPACESmugglingWarnContent-Length with trailing space — OWS trimming is valid per RFC 9110 §5.5
SMUG-CL0-BODY-POISONSmugglingWarnContent-Length: 0 with trailing bytes — checks if leftover bytes poison the next request
SMUG-CLTE-CONN-CLOSESmugglingFailCL+TE conflict — server MUST close connection after responding
SMUG-CLTE-DESYNCSmugglingFailCL.TE desync — leftover bytes after the body boundary may be interpreted as the next request
SMUG-CLTE-PIPELINESmugglingWarnCL.TE conflict — both Content-Length and Transfer-Encoding: chunked present
SMUG-CLTE-SMUGGLED-GETSmugglingFailCL.TE desync — embedded GET in body; multiple responses indicate request boundary confusion
SMUG-CLTE-SMUGGLED-GET-TE-CASE-MISMATCHSmugglingFailCL.TE desync with TE case mismatch — multiple responses indicate request boundary confusion
SMUG-CLTE-SMUGGLED-GET-TE-OBS-FOLDSmugglingFailCL.TE desync with obs-folded Transfer-Encoding — multiple responses indicate request boundary confusion
SMUG-CLTE-SMUGGLED-GET-TE-TRAILING-SPACESmugglingFailCL.TE desync with TE trailing space — multiple responses indicate request boundary confusion
SMUG-CLTE-SMUGGLED-HEADSmugglingFailCL.TE desync — embedded HEAD in body; multiple responses indicate request boundary confusion
SMUG-EXPECT-100-CLSmugglingWarnExpect: 100-continue with Content-Length — server should send 100 then read body
SMUG-GET-CL-PREFIX-DESYNCSmugglingWarnGET with Content-Length body containing an incomplete request prefix — follow-up completes it if body was left unread
SMUG-HEAD-CL-BODYSmugglingFailHEAD request with Content-Length and body — server must not leave body on connection
SMUG-MULTIPLE-HOST-COMMASmugglingFailHost header with comma-separated values must be rejected
SMUG-OPTIONS-CL-BODYSmugglingFailOPTIONS with Content-Length and body — server should consume or reject body
SMUG-OPTIONS-CL-BODY-DESYNCSmugglingFailOPTIONS with Content-Length body followed by a second request — detects unread-body desync
SMUG-TECL-CONN-CLOSESmugglingFailTE+CL conflict (reversed order) — server MUST close connection after responding
SMUG-TECL-DESYNCSmugglingFailTE.CL desync — chunked terminator before CL boundary, leftover bytes smuggled
SMUG-TECL-PIPELINESmugglingWarnTE.CL conflict — Transfer-Encoding: chunked + conflicting Content-Length
SMUG-TECL-SMUGGLED-GETSmugglingFailTE.CL desync via chunk-size prefix trick — multiple responses indicate request boundary confusion
SMUG-TRAILER-AUTHSmugglingWarnAuthorization header in chunked trailers — prohibited per RFC 9110 §6.5.1
SMUG-TRAILER-CLSmugglingWarnContent-Length in chunked trailers must be ignored — prohibited trailer field
SMUG-TRAILER-CONTENT-TYPESmugglingWarnContent-Type in chunked trailer — prohibited per RFC 9110 §6.5.1
SMUG-TRAILER-HOSTSmugglingWarnHost header in chunked trailers must not be used for routing
SMUG-TRAILER-TESmugglingWarnTransfer-Encoding in chunked trailers must be ignored — prohibited trailer field
SMUG-TRANSFER_ENCODINGSmugglingWarnTransfer_Encoding (underscore) header with CL — not a valid header but some parsers accept
WS-UPGRADE-INVALID-VERWebSocketsWarnWebSocket upgrade with unsupported version — should return 426