Skip to main content

kin-openapi EUVDEUVD-2026-102161

| CVE-2026-100352 HIGH
Improper Check for Unusual or Exceptional Conditions (CWE-754)
2026-10-15 security-advisories@github.com GHSA-rj39-cv6w-8wv7
7.5
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Identify OAS 3.1 endpoint accepting YAML
  2. Delivery
    Send YAML body with .nan/.inf value
  3. Exploit
    Reach jsonschema numeric validation
  4. Execution
    Dereference nil big.Rat panic
  5. Impact
    Crash request goroutine or process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Unusual condition handling
Exploitation Conditions

The target must run kin-openapi before 0.148.0 and route validation through the OpenAPI 3.1 path (useJSONSchema2020), which bypasses kin-openapi's existing finite-number guards in visitJSON; the validated operation must declare a numeric constraint (e.g. 'type: number' with 'minimum'), the endpoint must accept an application/yaml or application/x-yaml request body, and the service must invoke ValidateRequest on that input. No authentication is required (PR:N). LIMITING FACTORS: services on 3.0 specs, services not accepting YAML bodies, or operations without numeric constraints are unaffected; and because standard net/http recovers the panic per connection, impact is often limited to a single dropped request - full process termination requires a non-net/http host or a panic raised within an application goroutine.

Impact

This is a genuine but bounded denial-of-service issue, not a high-impact priority flaw. The CVSS 7.5 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) correctly reflects an availability-only impact reachable by remote unauthenticated clients, and CWE-754 (improper check for unusual conditions) matches the root cause: unguarded YAML NaN/infinity values reaching santhosh-tekuri/jsonschema v6.0.2, which dereferences a nil big.Rat. However, the A:H rating is optimistic for the common case: the description itself states that standard net/http servers recover the panic per connection, so the realistic impact there is a single failed request rather than full outage - full process termination only occurs on non-net/http hosts or when the panic propagates in application goroutines. No EPSS score, KEV listing, or public exploit was provided; exploitation status is therefore 'no public exploit identified at time of analysis.' The commit adds only a regression test (not a weaponized exploit) and bumps the dependency to v6.0.3. CONFLICT TO NOTE: the input Tag 'Information Disclosure' directly contradicts the CVSS vector (C:N, I:N, A:H) - this is an availability/DoS issue with no confidentiality impact, so the tag appears mislabeled. Overall this warrants routine patching for affected deployments rather than emergency response.

Exploit ScenarioDerived

An attacker identifies a Go service using kin-openapi (<0.148.0) that validates requests against an OpenAPI 3.1 spec with a numeric constraint and accepts YAML bodies. They send an unauthenticated POST with Content-Type application/yaml and a body of '.nan', '.inf', or '-.inf', which during ValidateRequest triggers a nil big.Rat dereference in the jsonschema dependency. On standard net/http this crashes the serving goroutine (recovered per connection), but on other hosts or in application goroutines it can terminate the whole process; no public exploit code was identified, though the fix commit demonstrates the trigger clearly.

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

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

Alert me

AnalysisAIv1 – Oct 15, 2026

Unauthenticated remote requests can crash Go services that embed kin-openapi before 0.148.0: posting a YAML body containing .nan, .inf, or -.inf to an OpenAPI 3.1 operation carrying a numeric constraint drives the bundled santhosh-tekuri/jsonschema v6.0.2 into a nil big.Rat dereference, panicking inside ValidateRequest. The assessed CVSS 3.1 vector is AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H (7.5), reflecting availability-only impact: a standard net/http server recovers the panic per connection so the effect is usually a single dropped request, while non-net/http hosts or panics raised in application goroutines can terminate the process. No public exploit code has been identified at time of analysis and there is no evidence of confirmed active exploitation; the need to reach an OAS 3.1 spec, accept application/yaml (or application/x-yaml), and hit an operation with a numeric constraint keeps this a genuine but bounded denial-of-service issue.

RemediationAI

Vendor-released patch: 0.148.0. Upgrade the module with go get github.com/getkin/kin-openapi@v0.148.0 (or bump the go.mod requirement) and rebuild, which pulls in github.com/santhosh-tekuri/jsonschema/v6 v6.0.3; services that pin the jsonschema dependency directly can also move to v6.0.3 while remaining on an older kin-openapi, though the supported path is the 0.148.0 release described at https://github.com/getkin/kin-openapi/releases/tag/v0.148.0 and detailed in GHSA-rj39-cv6w-8wv7. If deployment of the patched version is delayed, restrict the affected endpoints to application/json by dropping or rejecting application/yaml and application/x-yaml Content-Types at the reverse proxy or middleware layer, accepting that legitimate YAML clients lose service, or add a defer/recover wrapper around the ValidateRequest call together with a top-level panic recovery handler so that a panic cannot escape the request goroutine, recognizing that this only contains the effect on net/http-style hosts and will not prevent process termination when the panic surfaces in a non-net/http runtime or an application-owned goroutine. The underlying regression test in the fix commit (openapi3filter/yaml_nan_inf_test.go) can be reused as a verification step that the upgraded build returns a validation error instead of panicking.

Affected VersionsENISA

kin-openapi < 0.148.0

Affected Packages

go github.com/getkin/kin-openapi fix: 0.148.0
euvd kin_openapi fix: 0.148.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 widely used Go library for parsing, validating, and routing OpenAPI documents, and it delegates a large share of schema validation to the external module github.com/santhosh-tekuri/jsonschema. For OpenAPI 3.0 documents, kin-openapi's own visitJSON routine includes finite-number guards that reject NaN and infinity before they reach a numeric constraint; for OpenAPI 3.1, validation instead routes through useJSONSchema2020, which forwards values straight to the jsonschema dependency and skips those guards. YAML permits the special scalars .nan, .inf, and -.inf, which decode to float64 NaN and infinities. In jsonschema v6.0.2 the numeric-constraint validator (numValidate) builds and dereferences a big.Rat from those values, producing a nil-pointer panic; the upstream project corrected this in v6.0.3, and kin-openapi 0.148.0 adopts that version in its go.mod and go.sum alongside a regression test (openapi3filter/yaml_nan_inf_test.go) that asserts a clean validation error rather than a panic. The root cause class is CWE-754, improper check for exceptional conditions, since the 3.1 code path failed to validate that an incoming numeric value is finite before passing it to the constraint engine.

Know when the next one hits your stack

  • 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) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Remote unauthenticated YAML body triggers the panic (AV:N/AC:L/PR:N/UI:N); only availability is affected (C:N/I:N/A:H), with A:H reflecting worst-case process termination on non-net/http hosts.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

Lifecycle Timeline

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

DescriptionCVE.org

kin-openapi is a Go project for handling OpenAPI files. 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. Standard net/http servers recover the panic per connection, while other hosts or application goroutines may terminate the process. This issue is fixed in version 0.148.0.

Technical POC Analysis

CWE-754 (Improper Check for Unusual or Exceptional Conditions), a missing-guard / nil-pointer-dereference chain.

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

Go-based services that embed kin-openapi versions below 0.148.0 can be crashed remotely by an unauthenticated request, giving any Internet- or partner-facing API an availability-only denial-of-service exposure when it publishes an OpenAPI 3.1 specification containing numeric constraints. No public exploit code has been identified at time of analysis and there is no evidence of confirmed active exploitation; typical net/http deployments recover after a single dropped request, so the realistic business effect is intermittent, bounded service disruption rather than data loss or compromise. Leadership should still care because non-standard hosts, panics raised in application goroutines, or replicas without automatic restart can turn this into full process termination and customer-visible outages.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations: reject or strip application/yaml and application/x-yaml request bodies at the reverse proxy or WAF and filter payloads containing .nan, .inf, or -.inf; enforce JSON-only content negotiation for OpenAPI 3.1 operations; enable panic-recovery middleware plus process supervision and automatic restart/horizontal scaling; apply request-size limits and per-IP rate limiting; isolate affected services and alert on process restarts or dropped-request spikes. Plan to upgrade to kin-openapi 0.148.0 or later once a vendor advisory is confirmed.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Medium
popular Go OpenAPI validation library, common in Go API services but not universal
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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.4%
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
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.

Vendor StatusVendor

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