CVE-2026-73501: kin-openapi: ValidationHandler.Load() Fail-Open Authentication Bypass via NoopAuthenticationFunc Default
kin-openapi is a Go project for handling OpenAPI files. Prior to 0.144.0, ValidationHandler.Load() in openapi3filter/validation_handler.go silently replaces a nil AuthenticationFunc with NoopAuthenticationFunc, which returns nil without checking credentials. This substitution causes every OpenAPI security requirement to be satisfied for unauthenticated requests when an application relies on ValidationHandler as its enforcement middleware. The no-op callback prevents the fail-closed ErrAuthenticationServiceMissing path from being reached and forwards the request to protected handlers that may require an API key, OAuth token, or another security scheme. This issue is fixed in version 0.144.0.
Security readout for executives and security teams
Plain-English summary
Affected applications may unintentionally allow unauthenticated users into API endpoints documented as protected. The flaw occurs when kin-openapi’s ValidationHandler is trusted to enforce security but no authentication function is configured. Requests can then proceed without API keys, OAuth tokens, or other expected credentials, potentially exposing sensitive data or unauthorized actions.
Executive priority
Treat internet-facing or sensitive APIs matching the affected configuration as an immediate remediation priority. Rapidly identify exposed services, upgrade them, and verify authentication behavior. Prioritize endpoints capable of disclosing regulated data or modifying business records, while avoiding assumptions that OpenAPI security declarations alone provided enforcement.
Technical view
Before version 0.144.0, ValidationHandler.Load() replaces a nil AuthenticationFunc with NoopAuthenticationFunc. That callback returns success without validating credentials, satisfying OpenAPI security requirements and bypassing the intended fail-closed ErrAuthenticationServiceMissing path. The issue is remotely reachable, requires no privileges or user interaction, and can affect confidentiality and integrity.
Likely exposure
Exposure is limited to applications using kin-openapi versions below 0.144.0 that rely on ValidationHandler for security enforcement while leaving AuthenticationFunc nil. Applications with separate, correctly configured authentication enforcement may not be exploitable through this flaw, but their request flow must be verified.
Exploitation context
The supplied record is not listed in CISA KEV, and the cited sources provide no evidence of active exploitation. Exploitation would nevertheless have low complexity where a vulnerable, internet-accessible API exposes protected operations through the affected middleware configuration.
Researcher notes
The security failure is configuration-dependent but fail-open: middleware converts a missing authentication service into successful authentication. Analysis should trace the complete request chain because separate upstream authentication may reduce practical exposure. The bundle does not establish public proof-of-concept availability, observed attacks, or affected applications beyond getkin kin-openapi before 0.144.0.
Mitigation direction
Upgrade kin-openapi to version 0.144.0 or later.
Explicitly configure a credential-validating AuthenticationFunc wherever OpenAPI security requirements are enforced.
Use independent access controls until affected services are upgraded and verified.
Review vendor advisory and release guidance before returning mitigated services to normal operation.
Validation and detection
Inventory deployed Go dependencies and identify kin-openapi versions below 0.144.0.
Review ValidationHandler initialization paths for a nil or no-op AuthenticationFunc.
Test protected endpoints without credentials and confirm requests are rejected before reaching handlers.
Confirm deployed artifacts contain kin-openapi 0.144.0 or later.
Review access logs for unauthenticated requests reaching endpoints expected to require credentials.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-287: Credential and account abuse lookup
Authentication and credential weaknesses can make valid-account abuse and credential telemetry useful review starting points. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references authentication or credential exposure, so valid-account and credential-access review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
4Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: yesTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-287 · source CWE mapping
Improper Authentication
Improper Authentication represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.