Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify operation with 3.1 array-no-items schema
-
DeliverySend nonempty form/multipart request
-
ExploitDecoder dereferences nil Schema.Items
-
Executionnil-pointer panic in ValidateRequest
-
ImpactService crash / denial of service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
|
| Exploitation Conditions | Exploitation requires the target to run kin-openapi 0.136.0 through 0.142.x AND to serve an OpenAPI 3.1 document that declares a |
| Impact | This is a genuine but bounded availability risk. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) describes a remote, unauthenticated, low-complexity denial of service with no confidentiality or integrity impact - consistent with CWE-248 (uncaught exception) and the described nil-pointer panic. No EPSS score, KEV listing, or public exploit was provided in the input, so there is no public exploit identified at time of analysis; the GitHub commit contains only the vendor's regression test, which is NOT a weaponized proof-of-concept. The key limiting factor is a deployment precondition not captured by the base CVSS: the vulnerability only triggers when the target server serves an OpenAPI 3.1 document containing a |
| Exploit ScenarioDerived | A Go backend uses kin-openapi (0.136.0-0.142.x) with an OpenAPI 3.1 spec that declares an array schema without |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
A nil-pointer panic in kin-openapi's openapi3filter validation path can crash any Go service that embeds versions 0.136.0 through 0.142.x and serves an OpenAPI 3.1 document with an array schema that omits the items keyword. Unauthenticated remote clients (CVSS vector PR:N/UI:N) only need to send a single nonempty application/x-www-form-urlencoded or multipart/form-data request to an affected operation - or trigger a matching response on a surface such as a response header - to deterministically panic ValidateRequest or ValidateResponse, producing denial of service with no confidentiality or integrity impact (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, CVSS 7.5). The risk is real but bounded: only OpenAPI 3.1 specs containing the specific malformed-but-spec-legal array shape are exposed, JSON request bodies use a different decoder, and OpenAPI 3.0 documents are rejected at validation time. No public exploit code has been identified at time of analysis, and there is no confirmed active exploitation.
RemediationAI
Vendor-released patch: upgrade kin-openapi to 0.143.0, which adds nil checks to the vulnerable decoders and returns a clean validation error rather than panicking; the fix is carried in commit 30e292371a89ca6d1f91a9553e0aa518b49f838d and released as tag v0.143.0 (https://github.com/getkin/kin-openapi/releases/tag/v0.143.0), with the advisory at https://github.com/getkin/kin-openapi/security/advisories/GHSA-p6wj-qrr4-pgh5. If an immediate dependency bump is not possible, the most effective compensating control is to repair the deployed specification rather than the code: add an explicit items keyword to every array schema in any OpenAPI 3.1 document served or loaded by the application, which removes the nil pointer entirely and costs nothing functionally since 3.1 array schemas on the affected surfaces are already being treated as untyped by the failing decoder. A secondary mitigation is to pin the module to the last unaffected line (0.135.x) if no 3.1 array-without-items schemas are needed. Two narrower alternatives carry trade-offs: rejecting or downgrading loaded documents to OpenAPI 3.0 removes the vulnerable 3.1 code path but forfeits 3.1-only features and may break otherwise valid specs, while wrapping HTTP handlers in panic-recovery middleware (or a recover around ValidateRequest/ValidateResponse) keeps the process alive but only converts a crash into a per-request 500 error - it masks other latent panics and does not fix the root cause, so it should be treated as a stopgap only. Because only unauthenticated remote requests are needed, also consider rate limiting and upstream request filtering as damage limitation until 0.143.0 is deployed.
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
The issue is an improper nil pointer dereference (CWE-248) inside openapi3filter, the request/response validation component of the getkin/kin-openapi Go library (CPE cpe:2.3:a:getkin:kin-openapi). OpenAPI 3.1 aligns its Schema Object with JSON Schema 2020-12, under which type: array without an items keyword is legal, so doc.Validate() accepts such a document and leaves Schema.Items as nil. The library's decoders for application/x-www-form-urlencoded and multipart/form-data request bodies, for response headers, and for other array parameter surfaces then dereference Schema.Items without a nil guard, panicking as soon as a nonempty value reaches the affected schema. Two structural factors narrow exposure: OpenAPI 3.0 documents are unaffected because their stricter validation rejects arrays that omit items, and JSON request bodies are decoded through a separate code path that does not touch the vulnerable code. The accompanying upstream test suite (array_items_nil_panic_test.go) confirms the intended fixed behavior - returning a clean error containing "array items required" instead of panicking - and demonstrates the 3.1 no-items schema is still spec-legal and accepted by Validate. Note that intelligence tags label this entry "Information Disclosure", which is inconsistent with the assessed availability-only impact; no disclosure primitive is described in the advisory, commit, or assessment.
Know when Go 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Remote unauthenticated client deterministically triggers a panic with a single request, so AV:N/AC:L/PR:N/UI:N; only a crash results, so C:N/I:N/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
kin-openapi is a Go project for handling OpenAPI files. From 0.136.0 until 0.143.0, openapi3filter accepts OpenAPI 3.1 array schemas without an items keyword and then dereferences the nil Schema.Items value while decoding application/x-www-form-urlencoded or multipart/form-data request bodies, response headers, and other array parameter surfaces. A remote unauthenticated client can reach an affected operation with a nonempty request or matching response and deterministically trigger a nil-pointer panic during ValidateRequest or ValidateResponse. OpenAPI 3.0 documents are not affected because document validation rejects arrays without items, and JSON request bodies use a different decoder path. This issue is fixed in version 0.143.0.
Technical POC Analysis
PoC status: a full, verified PoC is present in the advisory (spec, end-to-end main.go, and a regression test suite), so everything below is grounded in observed behaviour, not inference.
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 the kin-openapi library, versions 0.136.0 through 0.142.x, can be knocked offline by a single unauthenticated form-encoded request whenever they serve an OpenAPI 3.1 document containing an array schema that omits the items keyword. No vendor patch is available, so exposure is limited to 3.1-spec services with that specific schema shape, but any affected endpoint can be crashed repeatedly by an unauthenticated remote client, producing a denial-of-service condition that affects availability only. Leadership should care because remediation depends on our own specification and dependency changes rather than a vendor fix, and internet-facing APIs built on this framework may be unavailable until those changes are made.
No vendor-released patch identified at time of analysis. Interim mitigations: correct the OpenAPI 3.1 documents by adding an explicit items keyword to any array schema missing it; restrict or disable affected operations and fall back to OpenAPI 3.0 validation where possible; add panic-recovery middleware and process supervision with automatic restart; apply edge rate limiting and request-size limits; and monitor upstream kin-openapi releases for a fixed version to deploy.
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.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and there
Critical certificate validation bypass in Go crypto/tls during session resumption. If ClientCAs or RootCAs fields are mu
net/url in Go before 1.11.13 and 1.12.x before 1.12.8 mishandles malformed hosts in URLs, leading to an authorization by
Casdoor through 4.4.0 exposes its instance-wide built-in JWT signing private key unmasked through the /api/get-certs and
Host header injection in Nezha 2.2.3's OAuth2 redirect endpoint (/api/v1/oauth2/{provider}) allows an unauthenticated re
Session cross-wiring in SUSE NeuVector before 5.6.1 allows an unauthenticated remote attacker to obtain another user's a
Unauthenticated path traversal in Uber Kraken through 0.1.29 allows remote attackers to read files outside the configure
The "go get" implementation in Go 1.9.4, when the -insecure command-line option is used, does not validate the import pa
Denial of service in Temporal Server allows an authenticated caller holding at least namespace read permission to crash
Account takeover in Klever-Go's KleverUpdateAccountPermission built-in (all versions prior to 1.7.20) allows an attacker
Maliciously crafted on-chain account names processed by Klever-Go prior to 1.7.20 are spliced into Elasticsearch _bulk r
EUVD-2026-102143
GHSA-p6wj-qrr4-pgh5
NVD
CVE.org
EPSS
Exploit-DB