Skip to main content

kin-openapi CVE-2026-100351

| EUVDEUVD-2026-102160 HIGH
Authentication Bypass by Alternate Name (CWE-289)
2026-10-15 GitHub_M GHSA-23vg-4cjm-66q5
7.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify overlapping public and protected routes sharing a method
  2. Exploit
    Send request with encoded path separator (%2F)
  3. Execution
    Validator matches public route and skips AuthenticationFunc
  4. Impact
    Request dispatched to protected handler unauthenticated

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Alternate name authentication
Exploitation Conditions

Exploitation requires a precise stack: kin-openapi from 0.144.0 up to (not including) 0.147.0, openapi3filter.ValidationHandler wired as authentication middleware, AND a downstream gorilla/mux router configured with UseEncodedPath, AND a public exact route plus a protected parameterized route that use the same HTTP method and overlap after URL-decoding (e.g. GET /public/status vs GET /{id}). The attacker triggers it with an encoded path separator (%2F) so the decoded path matches the public operation while the raw encoded path routes to the protected handler. Limiting factors that reduce real-world risk: the reachable path parameter is constrained to an encoded representation that decodes to the public literal route (so arbitrary protected resources are not freely addressable), and any upstream proxy that canonicalizes/normalizes the URI before forwarding neutralizes the mismatch entirely.

Impact

Signals are mixed and point to a real-but-constrained issue rather than a drop-everything emergency. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N, base 7.4 High) shows a network-reachable, unauthenticated flaw (PR:N) with high confidentiality and integrity impact, but AC:H explicitly encodes that exploitation is not straightforward - it depends on a specific routing topology. No EPSS score, no CISA KEV listing, and no SSVC decision data were provided, so automatable/exploitation-maturity cannot be assessed from the input. No standalone public exploit is referenced, though the fix commit itself ships a regression test (TestEncodedPathAuthorizationBypass) that fully demonstrates the bypass, meaning a working technique is effectively public even if not packaged as a weapon. The decisive limiter is in the description: the reachable path parameter is constrained to an encoded value that decodes to the public literal route (the test shows the protected handler receiving an empty id), so an attacker cannot freely address arbitrary protected resources - this materially narrows real-world impact below what C:H/I:H alone suggests. Net: a legitimate authentication-bypass bug worth patching for anyone running the affected kin-openapi versions behind gorilla/mux with UseEncodedPath, but absent KEV/EPSS evidence and given AC:H plus the parameter constraint, it reads as a targeted/conditional issue rather than a mass-exploitation threat.

Exploit ScenarioDerived

An application uses kin-openapi 0.144.0-0.146.x openapi3filter.ValidationHandler (with AuthenticationFunc) as auth middleware in front of a gorilla/mux router configured with UseEncodedPath, exposing a public GET /public/status and a protected parameterized GET /{id}. An unauthenticated attacker sends GET /public%2Fstatus; the validator decodes the path, matches the public operation and skips AuthenticationFunc, while mux dispatches the raw encoded path to the protected /{id} handler. No standalone public exploit is referenced, but the vendor's fix commit includes a regression test that reproduces the bypass end to end; AC:H reflects that the target must use this specific overlapping-route configuration.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

An unauthenticated remote request can slip past kin-openapi's openapi3filter authentication middleware and reach a handler that was meant to be protected, when the library's ValidationHandler is used as middleware in front of a gorilla/mux router configured with UseEncodedPath. The library validates the operation it derives from the decoded URL.Path (0.144.0 through 0.146.x), while the downstream mux router, using the raw encoded path, dispatches to a different, protected parameterized route that overlaps the public exact route after decoding - so requests carrying an encoded slash (%2F) can be validated as the public operation and then served by the protected handler without the configured AuthenticationFunc ever running. Reaching the flaw requires a precise deployment stack (kin-openapi >=0.144.0 <0.147.0, ValidationHandler wired as auth middleware, mux with UseEncodedPath, and an overlapping public exact route plus protected parameterized route sharing an HTTP method), which is reflected in the CVSS 7.4 rating with AC:H; no CISA KEV listing, and no public exploit identified at time of analysis, though the upstream fix commit includes a regression test that reproduces the bypass.

RemediationAI

Vendor-released patch: upgrade kin-openapi to v0.147.0 (https://github.com/getkin/kin-openapi/releases/tag/v0.147.0), which contains commit eda80e2676e9f577ceed2dd80e64f16083edb041 and the new ErrEncodedPathSeparator guard that rejects requests whose encoded path resolves to a different operation than the decoded path; the advisory is at https://github.com/getkin/kin-openapi/security/advisories/GHSA-23vg-4cjm-66q5. If upgrading is delayed, the most direct compensating control is to remove UseEncodedPath from the downstream gorilla/mux router so routing and validation derive from the same path representation - this closes the mismatch but changes routing semantics for any legitimate paths that rely on an encoded separator, so those routes must be re-tested; alternatively, normalize/canonicalize (or reject) request URIs carrying percent-encoded path separators at the reverse proxy or gateway before they reach the application, noting that an upstream proxy which already canonicalizes the URI neutralizes the issue entirely but a proxy that forwards the raw encoded path does not. Also eliminate route overlap in the affected services: avoid pairing a public exact route with a protected parameterized route that share an HTTP method and collide after decoding (for example GET /public/status versus GET /{id}), and where overlap is unavoidable move the authentication check to the protected handler itself as a defense-in-depth measure, accepting that duplicated authorization logic can drift from the OpenAPI-declared security requirements. Verify remediation by replaying an encoded-separator request against each overlapping route pair and confirming the AuthenticationFunc is invoked.

Affected VersionsENISA

kin-openapi 0.144.0, < 0.147.0

Affected Packages

go github.com/getkin/kin-openapi fix: 0.147.0
euvd kin_openapi fix: 0.147.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

kin-openapi is a Go library for parsing and validating OpenAPI 3 documents; its openapi3filter.ValidationHandler can be wired as HTTP middleware that selects the matching OpenAPI operation and runs the configured AuthenticationFunc before passing the request downstream. The root cause is a routing/validation mismatch classified as CWE-289 (Authentication Bypass by Alternate Name): the validation layer resolves the operation from the decoded URL.Path, whereas gorilla/mux configured with UseEncodedPath resolves it from URL.RawPath. When a public exact route (e.g. GET /public/status) and a protected parameterized route (e.g. GET /{id}) share a method and overlap after decoding, a request for /public%2Fstatus is validated against the public operation and therefore skips authentication, while the router still dispatches it to the /{id} protected handler bound to the encoded raw path. The upstream fix (commit eda80e2676e9f577ceed2dd80e64f16083edb041, released in v0.147.0) introduces a new sentinel error, ErrEncodedPathSeparator, returned as a routers.RouteError when a request path contains an encoded path separator and the decoded path resolves to a different operation than the escaped path, preventing the serve of a request where one operation is validated and another is handled. Two factors materially constrain exploitation: the reachable path parameter is limited to an encoded representation that decodes to the public literal route, so arbitrary protected resources are not freely addressable, and any upstream proxy that canonicalizes or normalizes the URI before forwarding eliminates the decoded/raw mismatch entirely.

Know when Kin Openapi gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.4 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 7.4 HIGH

Remote and unauthenticated (AV:N/PR:N); AC:H because it needs a specific UseEncodedPath router with overlapping public/parameterized routes; reaching the protected handler yields high C/I, no availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Red Hat 7.4 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 15, 2026 - 17:17 EUVD
CVE Published
Oct 15, 2026 - 15:52 cve.org
HIGH 7.4

DescriptionCVE.org

kin-openapi is a Go project for handling OpenAPI files. 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. The reachable path parameter is constrained to an encoded representation that decodes to the public literal route, and proxies that canonicalize the URI before forwarding prevent this specific mismatch. This issue is fixed in version 0.147.0.

Technical POC Analysis

Bug class: authentication bypass by alternate name (CWE-289), with interpretation conflict (CWE-436) as the contributing root.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

kin-openapi versions 0.144.0 through 0.146.x can bypass authentication middleware when deployed with gorilla/mux configured with UseEncodedPath, allowing crafted remote requests to reach protected handlers. Organizations using this specific stack face unauthorized access to protected operations, risking data exposure or unauthorized actions. Leadership should prioritize mitigation because no vendor-released patch is currently available and affected deployments require immediate configuration changes.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable gorilla/mux UseEncodedPath, avoid using kin-openapi ValidationHandler as authentication middleware, enforce authentication outside the affected middleware chain, block or normalize encoded slashes (%2F) at the edge/WAF, and audit routes for overlapping public exact and protected parameterized routes.

Threat Intelligence Overview

EPSS Score
0.5%
Top 59% exploitable
Prevalence
Medium
popular Go OpenAPI validation library, not universally deployed infrastructure
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

37
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +37
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2026-77354 HIGH POC
8.7 Aug 21

Uncontrolled heap allocation in kin-openapi versions 0.124.0 through 0.141.x allows any unauthenticated remote client to

CVE-2026-76905 HIGH POC
7.5 Aug 21

Nil pointer dereference in kin-openapi's openapi3filter.ConvertErrors allows any unauthenticated remote client to crash

CVE-2026-73501 CRITICAL
9.1 Aug 12

Authentication bypass in the kin-openapi Go library (getkin/kin-openapi) before 0.144.0 lets unauthenticated remote atta

CVE-2026-100349 HIGH
8.2 Oct 15

Response validation in kin-openapi (openapi3filter.ValidateResponse) panics with a nil pointer dereference when an OpenA

CVE-2026-100353 HIGH
7.5 Oct 15

Nil-pointer dereference in kin-openapi 0.136.0 through 0.148.x lets an unauthenticated remote client reliably panic Go a

CVE-2026-100354 HIGH
7.5 Oct 15

Denial of service in kin-openapi before 0.149.0 allows unauthenticated remote attackers to terminate the entire Go proce

CVE-2026-97394 HIGH
7.5 Oct 15

A nil-pointer panic in kin-openapi's openapi3filter validation path can crash any Go service that embeds versions 0.136.

CVE-2026-100350 MEDIUM
5.3 Oct 15

A low-severity denial-of-service condition affects the Go library kin-openapi in versions 0.145.0 through 0.146.0 (exclu

CVE-2026-100347 MEDIUM
5.3 Oct 15

Unsupported or non-canonical HTTP methods sent to Go services built on kin-openapi's openapi3filter.ValidationHandler wi

CVE-2026-100348 MEDIUM
5.3 Oct 15

A nil pointer dereference in kin-openapi versions prior to 0.145.0 lets a crafted OpenAPI document panic the loader, den

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy