Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify OAS 3.1 endpoint accepting YAML
-
DeliverySend YAML body with .nan/.inf value
-
ExploitReach jsonschema numeric validation
-
ExecutionDereference nil big.Rat panic
-
ImpactCrash 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
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.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-102161
GHSA-rj39-cv6w-8wv7
NVD
CVE.org
EPSS
Exploit-DB