Skip to main content

kin-openapi CVE-2026-100350

| EUVDEUVD-2026-102158 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-10-15 GitHub_M GHSA-h4r5-mxv5-8mjc
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Reach endpoint validating deepObject param
  2. Delivery
    Send request with many query keys
  3. Exploit
    Force per-key regex recompilation
  4. Execution
    Exhaust CPU and memory
  5. Impact
    Degrade service availability

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the target application to invoke openapi3filter.ValidateRequest and to define at least one query parameter using the deepObject serialization style in its OpenAPI schema; the vulnerable code path (urlValuesDecoder.DecodeObject) only runs for such parameters. The library version must be between 0.145.0 and 0.146.0. No authentication or user interaction is needed (PR:N/UI:N), but effective impact scales with the attacker's ability to send large numbers of query keys and sustain request volume, and is limited by any upstream request-size limits, rate limiting, or WAF query-parameter caps in front of the service.

Impact

This is a genuine but modest-severity denial-of-service issue (CWE-400) rather than a high-priority emergency. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L, base 5.3) is internally consistent with the description: an unauthenticated network attacker can trigger CPU/allocation work proportional to the number of attacker-supplied query keys because regexp.MustCompile was called loop-invariantly inside the per-query-key loop of urlValuesDecoder.DecodeObject. Impact is correctly scoped to availability-only (C:N/I:N) and rated Low (A:L) because this is amplified resource consumption, not a full crash or guaranteed outage - the author explicitly notes it is NOT ReDoS. No EPSS score, no CISA KEV entry, and no public exploit were provided, so exploitation signals are weak: no public exploit identified at time of analysis. The vendor advisory (GHSA-h4r5-mxv5-8mjc) and the fixing commit are confirmed, and the fix is a classic hoist-compilation-out-of-loop change, which supports the DoS-only classification. Net: real but low-urgency - patch in normal maintenance cycles, with priority raised only for internet-facing Go services that validate deepObject query parameters at high request volumes.

Exploit ScenarioDerived

An attacker identifies an internet-facing Go service that uses kin-openapi's openapi3filter.ValidateRequest and exposes an endpoint whose OpenAPI spec defines a deepObject-style query parameter. They repeatedly send requests packed with hundreds or thousands of unrelated query keys, forcing the server to recompile the same regular expression once per key per deepObject parameter, inflating CPU and memory usage. No public exploit code is available, but the attack is trivial to script given the low complexity and lack of authentication.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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

A low-severity denial-of-service condition affects the Go library kin-openapi in versions 0.145.0 through 0.146.0 (exclusive). When an application uses openapi3filter.ValidateRequest and its OpenAPI schema defines at least one query parameter with the deepObject serialization style, an unauthenticated remote client can send a request containing a large number of unrelated query keys, causing the urlValuesDecoder.DecodeObject routine to recompile the same parameter-name regular expression once per key and consume CPU and memory proportional to the attacker-controlled key count. The vulnerability scores CVSS 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L), and no public exploit code was identified at time of analysis; the issue is fixed in release 0.146.0.

RemediationAI

Upgrade kin-openapi to version 0.146.0 or later (vendor-released patch: 0.146.0), as documented in advisory GHSA-h4r5-mxv5-8mjc and release tag v0.146.0; this hoists the regular expression compilation out of the per-key loop and eliminates the amplification. Because the fix is a library dependency change, rebuild and redeploy every service that bundles kin-openapi in the 0.145.0 through 0.146.0 range and verify the module graph (go.mod/go.sum, or SBOM scan) to confirm no transitive copies remain. If an immediate upgrade is not possible, apply an upstream request-shaping control: cap total query string length and maximum query-parameter count at the reverse proxy, API gateway, or WAF, since attacker cost scales with key count - the trade-off is that legitimate clients sending unusually large query strings may be rejected, so thresholds must be tuned to real traffic. Rate limiting or connection throttling on affected endpoints reduces sustained abuse but does not remove the per-request amplification, and removing deepObject-styled query parameters from the schema (or refusing requests whose target parameter uses that style) closes the vulnerable path entirely at the cost of losing that OpenAPI feature. Note that upstream request-size limits or WAF parameter caps already present may bound the practical impact and should be confirmed before treating the service as fully exposed.

Affected VersionsENISA

kin-openapi 0.145.0, < 0.146.0

Affected Packages

go github.com/getkin/kin-openapi fix: 0.146.0
euvd kin_openapi fix: 0.146.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 module for parsing, validating, and filtering OpenAPI documents; the vulnerable component is openapi3filter, which validates incoming HTTP requests against a loaded OpenAPI schema. Root cause is CWE-400 (Uncontrolled Resource Consumption), specifically loop-invariant work hoisted incorrectly: in urlValuesDecoder.DecodeObject, the parameter-name prefix matcher regexp.MustCompile(fmt.Sprintf(^%s\[, regexp.QuoteMeta(param))) was constructed inside the per-query-key loop rather than once per parameter. The regex pattern itself depends only on the parameter name, which is constant across the loop, so compiling it per key turned the attacker-controlled query key count into proportional compilation work. The upstream fix (commit d090e36b2f1c42c898ba2a687a8f6e25f5ca727f) hoists the compiled expression into a paramPrefixRE variable created once before iterating keys. This is explicitly not regular-expression denial of service: the expression is fixed, the input is not interpreted as a pattern (QuoteMeta is applied), and the cost arises purely from repeated recompilation. The affected code path executes only for query parameters declared with the deepObject serialization style, meaning the OpenAPI schema itself determines whether a given deployment is reachable by the flaw.

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 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI 5.3 MEDIUM

Remote unauthenticated requests with no interaction (AV:N/AC:L/PR:N/UI:N); availability-only amplification yields A:L with no confidentiality or integrity impact and unchanged scope.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Oct 15, 2026 - 17:17 EUVD

DescriptionCVE.org

kin-openapi is a Go project for handling OpenAPI files. 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 used to decode a deepObject query parameter. An unauthenticated remote client can send an affected endpoint a request containing many unrelated query keys, causing ValidateRequest to perform work and allocations proportional to the attacker-controlled key count for every deepObject parameter. The expression itself is fixed and this is not regular expression denial of service; the resource consumption comes from loop-invariant recompilation. This issue is fixed in version 0.146.0.

Threat Intelligence Overview

EPSS Score
0.5%
Top 62% exploitable
Prevalence
Medium
popular Go OpenAPI validation library, common but not ubiquitous
Threat Intel
1
1 sources
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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-100351 HIGH
7.4 Oct 15

An unauthenticated remote request can slip past kin-openapi's openapi3filter authentication middleware and reach a handl

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