Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply untrusted OpenAPI spec
-
DeliveryDeclare response header with content not schema
-
ExploitValidateResponse invoked on operation
-
ExecutionNil header schema dereferenced in decodeValue
-
ImpactUnrecovered panic crashes service
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 | Requires an OpenAPI 3.x document whose response defines a header using a 'content' media-type object instead of a 'schema' (e.g. headers: X-Thing: content: application/json: {}), AND the application must call openapi3filter.ValidateResponse for that operation. The panic fires on every response validation for the affected operation, even when the response omits the declared header. Remote availability impact is LIMITED to applications that ingest untrusted/third-party specifications; applications using only trusted local specs are affected solely as a self-inflicted crash when the affected operation is exercised. Limiting factors: the specific header-with-content declaration must exist, response validation must be enabled/used, and attacker-driven remote triggering presupposes the app accepts externally-supplied specs. Fixed in kin-openapi 0.146.0. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) signals a network-reachable, unauthenticated flaw, but the AT:P (attack requirements present) flag is the decisive qualifier: exploitation only matters when an application actually ingests an untrusted/attacker-controlled OpenAPI specification that declares a response header with 'content' instead of 'schema'. Impact is availability-only (VC:N/VI:N/VA:H, CWE-476 nil-pointer panic) - there is no confidentiality or integrity exposure. The 8.2/HIGH score reflects the worst-case untrusted-spec ingestion model; for the far more common deployment where applications validate against trusted local specs, this degrades to a reliability crash triggered whenever the affected operation is exercised, not a remotely-triggerable DoS. No EPSS score was provided in the input, so exploitation probability cannot be quantified. There is no CISA KEV listing and no evidence of active exploitation; however, the fix commit publicly includes a working reproducer specification (specHeader) that deterministically triggers the panic, so a public proof-of-concept effectively exists. Net assessment: a legitimate priority for API gateways/proxies/tools that parse third-party OpenAPI documents, but a lower-urgency robustness bug for services that only load their own vetted specs. The AT:P requirement and availability-only impact argue against mass, indiscriminate exploitation. |
| Exploit ScenarioDerived | An application (e.g., an API gateway or validation tool) ingests an untrusted OpenAPI specification that declares a 200-response header such as X-Thing using 'content' rather than 'schema'. The document passes doc.Validate, but when openapi3filter.ValidateResponse is invoked for that operation, kin-openapi passes a nil header schema to decodeValue and dereferences it, panicking and crashing the service even if the actual response never contains that header. A public reproducer (the regression-test spec) ships in the fix commit, though no weaponized exploit or active exploitation is confirmed. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Response validation in kin-openapi (openapi3filter.ValidateResponse) panics with a nil pointer dereference when an OpenAPI 3.x document declares a response header using a 'content' media-type object instead of a 'schema' field - the document itself validates successfully, but every response validation for the affected operation dereferences the nil schema and crashes, even when the response omits the declared header entirely. All versions prior to 0.146.0 are affected, and the flaw is unauthenticated and network-reachable (CVSS 4.0 AV:N/PR:N), though the decisive qualifier is AT:P: remote availability impact realistically applies only to applications that ingest untrusted or third-party specifications, while applications using only trusted local specs suffer a self-inflicted crash when the affected operation is exercised. No public exploit code and no confirmed active exploitation were identified at time of analysis; the upstream commit adds a regression test and a nil-schema guard in the decoder. EPSS data was not provided for this CVE.
RemediationAI
Vendor-released patch: upgrade to kin-openapi 0.146.0, which introduces the nil-schema guard in the decoder (commit f5441d67f855ed34d975b3b85665764644ab1459) and a regression test exercising the header-with-content case; see the advisory at https://github.com/getkin/kin-openapi/security/advisories/GHSA-74vm-87hj-r66f and the release at https://github.com/getkin/kin-openapi/releases/tag/v0.146.0. If immediate upgrade is not possible, the most effective compensating control is to reject or normalize untrusted OpenAPI documents before loading: scan for response headers declared with a content media-type object instead of schema and refuse to load such specs (or rewrite them to use schema), which removes the trigger entirely but requires a pre-processing step and may reject legitimate specs that intentionally use header content. Because the panic fires on every ValidateResponse call for the affected operation even when the header is absent from the response, simply omitting the header or trimming responses is not a workaround. Applications that only load trusted, locally authored specs face a self-inflicted crash rather than a remote attack, so the practical risk there is availability of that process; wrapping ValidateResponse calls in a recover() to convert the panic into a handled error is a trade-off-prone stopgap that prevents process termination but masks the underlying validation failure, and disabling response validation entirely restores availability at the cost of losing all response-side schema enforcement. Note that the triggering condition is deterministic and low-effort for anyone who can supply a specification to a service that ingests them, but no public exploit code and no confirmed active exploitation were identified at time of analysis.
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 Go library for loading, validating, and routing OpenAPI 3.x documents, with the openapi3filter package providing request/response validation middleware. The root cause is CWE-476 (NULL Pointer Dereference): when a response header is declared with a content media-type object (for example, headers: X-Thing: content: application/json: {}) rather than a schema, the loader/validator accepts the document, but the decoder path in openapi3filter/req_resp_decoder.go is later invoked with a nil *openapi3.Schema. The fix commit (f5441d67f855ed34d975b3b85665764644ab1459) adds an early guard - if schema == nil, return nil, false, nil - so decoding short-circuits instead of dereferencing nil. Critically, the panic occurs during response validation for the affected operation regardless of whether the response actually includes the declared header, making it a deterministic crash rather than a conditional one; the accompanying test file (ghsa_74vm_87hj_r66f_test.go) demonstrates both the body/content-with-no-schema control case that must not panic and the header-with-content case that previously did. Per the CPE cpe:2.3:a:getkin:kin-openapi:*:*:*:*:*:*:*:* (no version constraint encoded), the whole version line up to the 0.146.0 fix is in scope, and the assessor's CVSS:3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H) confirms availability-only impact with no confidentiality or integrity loss, with AC:H reflecting the prerequisite attacker-controlled specification.
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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
AC:H because the attacker must supply a spec with the specific header-with-content construct and the operation must be validated; unauthenticated remote path, availability-only impact (A:H), so C:N/I:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
kin-openapi is a Go project for handling OpenAPI files. Prior to 0.146.0, openapi3filter.ValidateResponse passes a nil response header schema to decodeValue when an OpenAPI document declares the header with content instead of schema. The document passes validation, but every response validation for the affected operation dereferences the nil schema and panics even when the response does not contain the declared header. Applications that ingest an untrusted specification can expose this as remote availability impact, while applications using only trusted local specifications still crash when the affected operation is exercised. This issue is fixed in version 0.146.0.
Technical POC Analysis
CWE-476 (NULL Pointer Dereference) in openapi3filter, the request/response validation subpackage of the Go module github.com/getkin/kin-openapi.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
kin-openapi versions prior to 0.146.0 contain a high-severity denial-of-service vulnerability (CVE-2026-100349) that can cause application crashes during response validation when processing certain OpenAPI specifications. The flaw is unauthenticated and network-reachable, but the most realistic remote impact is limited to services that ingest untrusted or third-party specifications; applications using only trusted specs may still experience self-inflicted crashes. No vendor-released patch is available, and no public exploit has been identified at time of analysis.
Restrict ingestion of untrusted OpenAPI specifications; review all third-party specs to ensure response headers use 'schema' instead of 'content'; implement application-level crash monitoring and automatic restart; consider disabling response validation for untrusted specs or using a validated copy of the spec; isolate affected services.
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
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 Kin Openapi
View allUncontrolled heap allocation in kin-openapi versions 0.124.0 through 0.141.x allows any unauthenticated remote client to
Nil pointer dereference in kin-openapi's openapi3filter.ConvertErrors allows any unauthenticated remote client to crash
Authentication bypass in the kin-openapi Go library (getkin/kin-openapi) before 0.144.0 lets unauthenticated remote atta
Nil-pointer dereference in kin-openapi 0.136.0 through 0.148.x lets an unauthenticated remote client reliably panic Go a
Denial of service in kin-openapi before 0.149.0 allows unauthenticated remote attackers to terminate the entire Go proce
A nil-pointer panic in kin-openapi's openapi3filter validation path can crash any Go service that embeds versions 0.136.
An unauthenticated remote request can slip past kin-openapi's openapi3filter authentication middleware and reach a handl
A low-severity denial-of-service condition affects the Go library kin-openapi in versions 0.145.0 through 0.146.0 (exclu
Unsupported or non-canonical HTTP methods sent to Go services built on kin-openapi's openapi3filter.ValidationHandler wi
A nil pointer dereference in kin-openapi versions prior to 0.145.0 lets a crafted OpenAPI document panic the loader, den
EUVD-2026-102159
GHSA-74vm-87hj-r66f
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB