Skip to main content

kin-openapi CVE-2026-100353

| EUVDEUVD-2026-102163 HIGH
NULL Pointer Dereference (CWE-476)
2026-10-15 GitHub_M GHSA-vrcc-3ch7-hppw
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Identify API using kin-openapi validation
  2. Delivery
    Send crafted array/deepObject/urlencoded request
  3. Exploit
    Decoder passes nil items schema
  4. Execution
    Nil-pointer dereference panics goroutine
  5. Impact
    Request handler or process crashes (DoS)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
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 that the target application (1) uses kin-openapi version 0.136.0 through 0.148.x with openapi3filter request validation enabled, and (2) serves an OpenAPI 3.1 spec that declares an array schema WITHOUT an items definition in one of three specific locations: an array-typed query parameter, a deepObject query parameter whose object contains an array property, or an application/x-www-form-urlencoded request body whose array property sits inside an allOf, anyOf, or oneOf subschema. If none of the application's routes expose such a nil-items array schema, the vulnerable parseArray/buildResObj paths are never reached and the service is not exploitable. No authentication or user interaction is needed once a qualifying endpoint exists (PR:N/UI:N), but the victim-side spec shape is the key limiting factor that narrows real-world exposure well below what the 7.5 score implies.

Impact

This is a genuine but bounded availability-only issue. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, 7.5) accurately reflects a remotely reachable, unauthenticated, low-complexity denial of service with no confidentiality or integrity impact - the A:H is the sole driver of the HIGH score. Exploitation status is 'no public exploit identified at time of analysis': the commit ships regression tests that demonstrate the panic, but these are maintainer fix-verification tests, not a weaponized public exploit, and must NOT be conflated with a POC or active exploitation. No EPSS score was provided in the input and the CVE is not on CISA KEV, so there is no signal of in-the-wild use; this reads as a classic high-CVSS-but-DoS-only library bug rather than a top-tier emergency. The one important nuance is that reachability is conditional on the victim application's own OpenAPI spec containing a nil-items array schema in specific locations (see exploitation_conditions) - the CVSS AC:L captures attacker effort but understates this victim-side precondition, so real-world exposure is narrower than the 7.5 alone suggests. No conflicting signals in the data, but EPSS and POC status are simply absent rather than confirmed negative.

Exploit ScenarioDerived

A service built on kin-openapi uses openapi3filter to validate incoming requests against an OpenAPI 3.1 spec that defines an array (query parameter, deepObject array property, or urlencoded body array inside allOf/anyOf/oneOf) without an items schema. An unauthenticated remote attacker sends a single crafted request hitting that parameter, causing parseArray or buildResObj to dereference a nil items schema and panic, crashing the request handler or process. The panic is deterministic, so repeating it keeps the service down; no authentication or user interaction is required and no POC is publicly published.

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

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

Alert me

AnalysisAIv1 – Oct 15, 2026

Nil-pointer dereference in kin-openapi 0.136.0 through 0.148.x lets an unauthenticated remote client reliably panic Go applications that run openapi3filter request validation against an OpenAPI 3.1 spec declaring an array schema without an items definition. Three decoder paths are affected: a plain array query parameter, a deepObject query parameter whose object contains an array property, and an application/x-www-form-urlencoded body whose array property appears inside an allOf, anyOf, or oneOf subschema - each passes a nil items schema into urlValuesDecoder.parseArray or buildResObj, which dereferences it. Impact is availability-only (CVSS 7.5, CWE-476), exploitation is conditional on the target application actually exposing such a nil-items array schema on a validated route, and no public exploit code or CISA KEV entry is identified at time of analysis; the vendor fixed the issue in 0.149.0.

RemediationAI

Vendor-released patch: 0.149.0 - upgrade with go get github.com/getkin/kin-openapi@v0.149.0 (or github.com/getkin/kin-openapi@latest) and rebuild; the release adds nil-items guards in urlValuesDecoder.DecodeArray and buildResObj plus regression tests (commit 9814d1f2b212f3508bf52296aa9e248b2122a5a9, advisory https://github.com/getkin/kin-openapi/security/advisories/GHSA-vrcc-3ch7-hppw). If you cannot upgrade immediately, the highest-value compensating control is spec-shape remediation: audit every OpenAPI 3.1 document served by the application and add an explicit items schema to any type: array definition reachable through query parameters, deepObject properties, or urlencoded request bodies, including those nested in allOf/anyOf/oneOf - this is fully effective because the vulnerable code is only reached when items is nil, but it fails if any third-party or dynamically generated spec is outside your control. As a secondary control, disable openapi3filter request validation for the specific routes carrying such schemas, accepting the trade-off that you lose input validation on those endpoints (parameter type/format/enum enforcement, body schema checks), which can reintroduce injection or parsing bugs elsewhere. Third, wrapping the validation call site with a panic-recovery middleware (logging the panic and returning 400/503) or setting up a recover in your HTTP handler limits the blast radius of the panic; note that Go's net/http runtime already recovers handler goroutine panics and aborts the connection rather than terminating the process in typical deployments, so the practical effect is failed requests, log noise, and repeated-request availability degradation rather than a guaranteed full outage - recovery middleware still leaves the underlying defect in place and can mask unrelated bugs, so treat it as a stopgap only. There is no configuration flag that re-enables a nil-items check, so patching or spec correction is required.

Affected VersionsENISA

kin-openapi 0.136.0, < 0.149.0

Affected Packages

go github.com/getkin/kin-openapi fix: 0.149.0
euvd kin_openapi fix: 0.149.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

The affected component is openapi3filter, the request/response validation engine of getkin/kin-openapi, a widely used Go library for parsing, validating, and routing OpenAPI documents. The root cause is CWE-476 (NULL Pointer Dereference): OpenAPI 3.1 permits a schema of type: array with no items keyword (unlike OAS 3.0, where items is effectively required), so such a document is legal and passes doc.Validate(). When a request is validated against that schema, the value decoders dereference schemaRef.Value.Items.Value without a nil check. The query-parameter and composed (allOf/anyOf/oneOf) urlencoded-body paths reach urlValuesDecoder.parseArray, while the deepObject query path reaches buildResObj; both assume a non-nil items schema. This is a follow-on gap to the earlier fix for GHSA-p6wj-qrr4-pgh5, which addressed sibling code paths such as response headers but missed these three request-side decoders. The fix commit 9814d1f2b212f3508bf52296aa9e248b2122a5a9 adds explicit guards (if schema.Value.Items nil || schema.Value.Items.Value nil) in both DecodeArray and buildResObj, returning a clean error / ParseError instead of panicking, and also introduces regression tests covering all three cases. Affected CPE scope is cpe:2.3:a:getkin:kin-openapi:*:*:*:*:*:*:*:*.

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

Vendor (GitHub_M) 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 single-request panic yields AV:N/AC:L/PR:N/UI:N; impact is availability-only (A:H) with no confidentiality or integrity effect, scope unchanged.

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

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
High

Lifecycle Timeline

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

DescriptionCVE.org

kin-openapi is a Go project for handling OpenAPI files. From 0.136.0 until 0.149.0, three openapi3filter decoder paths that were missed by the fix for GHSA-p6wj-qrr4-pgh5 lack a nil-items guard for legal OpenAPI 3.1 array schemas. An unauthenticated remote client can trigger a deterministic nil-pointer panic through an array query parameter, a deepObject query parameter containing an array property, or an application/x-www-form-urlencoded request body whose array property appears inside an allOf, anyOf, or oneOf subschema. The query and composed-body paths reach urlValuesDecoder.parseArray, while the deepObject path reaches buildResObj, and all pass a nil items schema into code that dereferences it. This issue is fixed in version 0.149.0.

Technical POC Analysis

CWE-476 (NULL Pointer Dereference) in the Go module github.com/getkin/kin-openapi, package openapi3filter, file openapi3filter/reqrespdecoder.go.

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

A nil-pointer defect in the kin-openapi Go library (versions 0.136.0 through 0.148.x) can crash any service that validates inbound API traffic with the openapi3filter component, taking the affected endpoint and its host process offline until restart. Exposure is narrower than the library's overall install base: only applications whose OpenAPI 3.1 specification declares an array schema with no items definition on a validated route can be triggered, and no public exploit code or confirmed active exploitation is identified at this time. Leadership should care because the failure mode is low-effort, repeatable disruption of internet-facing APIs, and the fix is a library upgrade rather than a configuration change.

Business Impact: Medium
Compensating Controls

Apply vendor patch (upgrade to kin-openapi 0.149.0); interim, reject or normalize inbound requests that reach validated array schemas lacking an items definition and add panic/restart-loop monitoring on affected routes.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Medium
popular Go OpenAPI validation library, common but not universally deployed
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.3%
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

A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).

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

More in Go

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2016-5386 HIGH
8.1 Jul 19

The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and there

CVE-2025-68121 CRITICAL POC
10.0 Feb 05

Critical certificate validation bypass in Go crypto/tls during session resumption. If ClientCAs or RootCAs fields are mu

CVE-2019-14809 CRITICAL POC
9.8 Aug 13

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

CVE-2026-90942 CRITICAL POC
9.3 Sep 14

Casdoor through 4.4.0 exposes its instance-wide built-in JWT signing private key unmasked through the /api/get-certs and

CVE-2026-101090 CRITICAL POC
9.3 Sep 27

Host header injection in Nezha 2.2.3's OAuth2 redirect endpoint (/api/v1/oauth2/{provider}) allows an unauthenticated re

CVE-2026-78428 HIGH POC
8.8 Sep 17

Session cross-wiring in SUSE NeuVector before 5.6.1 allows an unauthenticated remote attacker to obtain another user's a

CVE-2026-92791 HIGH POC
8.7 Sep 16

Unauthenticated path traversal in Uber Kraken through 0.1.29 allows remote attackers to read files outside the configure

CVE-2018-7187 HIGH POC
8.8 Feb 16

The "go get" implementation in Go 1.9.4, when the -insecure command-line option is used, does not validate the import pa

CVE-2026-16651 HIGH POC
8.7 Sep 21

Denial of service in Temporal Server allows an authenticated caller holding at least namespace read permission to crash

CVE-2026-82405 HIGH POC
8.7 Sep 23

Account takeover in Klever-Go's KleverUpdateAccountPermission built-in (all versions prior to 1.7.20) allows an attacker

CVE-2026-82409 HIGH POC
8.4 Sep 23

Maliciously crafted on-chain account names processed by Klever-Go prior to 1.7.20 are spliced into Elasticsearch _bulk r

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