CVE-2026-100347
MediumCVSS 5.3Summary
In kin-openapi prior to 0.145.0, openapi3filter.ValidationHandler uses the routers/legacy router, which passes an unsupported or non-canonical HTTP method for an existing static path to openapi3.PathItem.GetOperation. The default branch of GetOperation panics before authentication runs, so an unauthenticated remote client can repeatedly send methods such as PROPFIND or lowercase get to abort connections and generate stack-trace log growth.
Risk Assessment
An unauthenticated attacker can trigger repeated panics and excessive log growth, leading to denial of service and disk exhaustion. The risk affects services using kin-openapi with the legacy router.
Recommendation
Upgrade kin-openapi to version 0.145.0 or later. Until patched, consider filtering unsupported HTTP methods at the proxy level.
Other vulnerabilities in kin-openapi
See all- CVE-2026-100353High
kin-openapi, a Go project for handling OpenAPI files, in versions from 0.136.0 until 0.149.0 lacks a nil-items guard for legal OpenAPI 3.1 array schemas in three openapi3filter decoder paths. An unauthenticated remote client can trigger a deterministic nil-pointer panic via an array query parameter, a deepObject query parameter, or an application/x-www-form-urlencoded request body.
- CVE-2026-97394High
kin-openapi, a Go project for handling OpenAPI files, in versions from 0.136.0 until 0.143.0 accepts OpenAPI 3.1 array schemas without an items keyword and then dereferences the nil Schema.Items value while decoding requests and responses. A remote unauthenticated client can deterministically trigger a nil-pointer panic during ValidateRequest or ValidateResponse.
- CVE-2026-100352High
In kin-openapi prior to 0.148.0, the OpenAPI 3.1 validation path passes YAML NaN and infinity numeric values to santhosh-tekuri/jsonschema v6.0.2 without applying kin-openapi's existing finite-number guards. A remote unauthenticated client can send an application/yaml or application/x-yaml request body containing .nan, .inf, or -.inf to an operation with a numeric constraint, causing the dependency to create and dereference a nil big.Rat during ValidateRequest.
- CVE-2026-100351High
In kin-openapi from 0.144.0 until 0.147.0, openapi3filter.ValidationHandler validates an operation selected from decoded URL.Path while a downstream gorilla/mux router configured with UseEncodedPath can dispatch a different operation selected from URL.RawPath. When a public exact route and a protected parameterized route use the same method and overlap after decoding, an unauthenticated remote request containing an encoded path separator can be validated as public and then dispatched to the protected handler without invoking the configured AuthenticationFunc.
- CVE-2026-100348Medium
In kin-openapi prior to 0.145.0, openapi3.Loader can dereference a nil SchemaRef.Value while resolving a self-referential additionalProperties JSON Reference. Loading an attacker-controlled OpenAPI document through LoadFromData, LoadFromFile, or LoadFromURI reaches resolveComponent before document validation and can panic the loading process.
- CVE-2026-73501Critical
kin-openapi is a Go project for handling OpenAPI files. Prior to 0.144.0, ValidationHandler.Load() 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.
- CVE-2026-100354High
kin-openapi, a Go project for handling OpenAPI files, prior to 0.149.0 lacks cycle detection when an allOf, anyOf, or oneOf chain refers back to an ancestor schema during runtime request and response validation. This causes unbounded recursion and a fatal stack overflow that terminates the entire process and cannot be caught with recover.
- CVE-2026-100350Medium
In kin-openapi from 0.145.0 until 0.146.0, openapi3filter repeatedly calls regexp.MustCompile for the same parameter-name regular expression inside the per-query-key loop in urlValuesDecoder.DecodeObject. An unauthenticated remote client can send a request with many unrelated query keys, causing resource consumption proportional to the attacker-controlled key count. This is not regular expression denial of service; the consumption comes from loop-invariant recompilation.
- CVE-2026-100349High
In kin-openapi prior to 0.146.0, openapi3filter.ValidateResponse passes a nil response header schema to decodeValue when an OpenAPI document declares the header with content instead of schema. The document passes validation, but every response validation for the affected operation dereferences the nil schema and panics even when the response does not contain the declared header.
- CVE-2026-77354High
kin-openapi versions 0.124.0 through 0.142.0 have a DoS vulnerability. The sliceMapToSlice function converts attacker-controlled indexes from a deepObject parameter into a dense slice, which can lead to multi-gigabyte heap allocation and cause OOM kill or restart loop.
Original NVD description (English source)
kin-openapi is a Go project for handling OpenAPI files. Prior to 0.145.0, openapi3filter.ValidationHandler uses the routers/legacy router, which passes an unsupported or non-canonical HTTP method for an existing static path to openapi3.PathItem.GetOperation. The default branch of GetOperation panics before authentication runs, so an unauthenticated remote client can repeatedly send methods such as PROPFIND or lowercase get to abort connections and generate stack-trace log growth. The specific panic requires an exact static path; a concrete path matched only by a templated route does not reach the same sink. This issue is fixed in version 0.145.0.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

