CVE-2026-73501
Linux Debian vulnerability analysis and mitigation

Overview

CVE-2026-73501 is a critical authentication bypass vulnerability in getkin/kin-openapi, a Go library for handling OpenAPI files. The flaw exists in ValidationHandler.Load() within openapi3filter/validation_handler.go, which silently replaces a nil AuthenticationFunc with NoopAuthenticationFunc — a function that always returns nil without performing any credential check. This causes every OpenAPI security requirement to be satisfied for unauthenticated requests when ValidationHandler is used as the enforcement middleware. All versions up to and including v0.143.0 are affected; the issue was fixed in v0.144.0, released July 23, 2026. It carries a CVSS v3.1 base score of 9.1 (Critical) (GitHub Advisory, Feedly).

Technical details

The root cause is CWE-287 (Improper Authentication): ValidationHandler.Load() unconditionally overwrites a nil AuthenticationFunc with NoopAuthenticationFunc, which always returns nil. When a request arrives, ServeHTTP calls validateRequest, which assembles a RequestValidationInput with the injected no-op function in its Options. Inside ValidateRequest, each security requirement invokes options.AuthenticationFunc; because the function is non-nil (it is the no-op, not nil), the fail-closed ErrAuthenticationServiceMissing guard is never reached, and the security check passes unconditionally. This creates a critical behavioral asymmetry: callers using ValidateRequest directly with a nil AuthenticationFunc receive fail-closed behavior, while callers using the higher-level ValidationHandler without explicitly setting AuthenticationFunc receive fail-open behavior. A public PoC is included in the GitHub Security Advisory demonstrating the bypass via a Dockerized Go binary (GitHub Advisory, GitHub Commit).

Impact

An unauthenticated remote attacker can access any endpoint protected by an OpenAPI security requirement (API key, OAuth token, or any other security scheme) without supplying credentials, as the middleware forwards the request to the underlying handler as if authentication had succeeded. Both confidentiality and integrity of data behind secured endpoints are at high risk — attackers can read sensitive data and perform unauthorized write or modify operations. Availability is not directly impacted. Because the insecure behavior is the default for any application using ValidationHandler without explicitly setting AuthenticationFunc, the blast radius is broad, affecting all Go services that rely on this middleware for access control without a separate upstream authentication layer (GitHub Advisory).

Exploitability

A PoC is publicly available as part of the GitHub Security Advisory, demonstrating the bypass using a Dockerized Go binary and Python helper script. The vulnerability is network-exploitable with no privileges or user interaction required, and NVD SSVC classifies it as automatable with total technical impact. No in-the-wild exploitation or threat actor attribution has been reported at this time. The EPSS score is 0.344% and the vulnerability is not currently listed in the CISA KEV catalog (GitHub Advisory, Feedly).

Exploitation steps

  1. Reconnaissance: Identify Go-based API services that use github.com/getkin/kin-openapi v0.143.0 or earlier as their OpenAPI validation middleware, particularly those using ValidationHandler without a separate authentication gateway.
  2. Identify protected endpoints: Review the target application's OpenAPI specification (often exposed at /openapi.json, /swagger.json, or /docs) to enumerate endpoints with declared security requirements (e.g., apiKey, oauth2, http bearer).
  3. Craft unauthenticated request: Send an HTTP request to a protected endpoint without supplying any credentials (e.g., omit the X-Api-Key header, Authorization header, or OAuth token).
  4. Bypass authentication: Because ValidationHandler.Load() has injected NoopAuthenticationFunc, the security requirement check returns nil (success) without validating credentials, and the request is forwarded to the protected handler.
  5. Access protected resource: The underlying handler processes the request and returns protected data or performs privileged operations, confirming the authentication bypass (GitHub Advisory).

Indicators of compromise

  • Network: HTTP requests to endpoints declared as security-protected in the OpenAPI spec that lack expected authentication headers (e.g., missing X-Api-Key, Authorization: Bearer, or equivalent); unusual volume of unauthenticated requests to sensitive API routes.
  • Logs: Application access logs showing successful (2xx) responses to protected endpoints from requests with no authentication headers; absence of authentication-related error log entries (e.g., no ErrAuthenticationServiceMissing errors) despite missing credentials.
  • Process/Application: Go services using openapi3filter.ValidationHandler where AuthenticationFunc is not explicitly set in the source code — identifiable via code review or dependency scanning of binaries using github.com/getkin/kin-openapi <= v0.143.0.

Mitigation and workarounds

Upgrade github.com/getkin/kin-openapi to v0.144.0 or later, which removes the automatic substitution of NoopAuthenticationFunc and requires callers to explicitly set AuthenticationFunc (GitHub Release, GitHub Commit). As a workaround prior to upgrading, explicitly set AuthenticationFunc on every ValidationHandler instance — either with a real credential-checking implementation or, if authentication is intentionally skipped, with openapi3filter.NoopAuthenticationFunc to make the intent explicit. Additionally, consider placing an upstream authentication layer (API gateway or reverse proxy) in front of services using this middleware to provide defense-in-depth.

Community reactions

The Hacker Wire published a dedicated article on the vulnerability shortly after disclosure (The Hacker Wire), and a corresponding post was shared on Mastodon. The advisory credits EQSTLab as the reporter and researcher "232-323" as the finder. Community discussion has noted the particularly insidious nature of the flaw — the vulnerable behavior is the default for developers following standard "getting started" patterns, making it easy to introduce without any explicit misconfiguration.

Additional resources


SourceThis report was generated using AI

Related Linux Debian vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-63343CRITICAL9.9
  • Linux Debian logoLinux Debian
  • incus
NoYesAug 21, 2026
CVE-2026-63125CRITICAL9.9
  • Linux Debian logoLinux Debian
  • incus
NoYesAug 21, 2026
CVE-2026-62941CRITICAL9.9
  • Linux Debian logoLinux Debian
  • incus
NoYesAug 21, 2026
CVE-2026-62940CRITICAL9.9
  • Linux Debian logoLinux Debian
  • incus
NoYesAug 21, 2026
CVE-2026-62867CRITICAL9.9
  • Linux Debian logoLinux Debian
  • incus
NoYesAug 21, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management