HIGHCVSS v3.1 7.5Vulnerability

CVE-2026-100354

## Summary kin-openapi's spec loader and spec-time validator both handle circular schema references safely: the loader resolves circular `$ref`s on purpose (to support recursive data structures), and `Schema.validate()` uses stack-based cycle detection. `Validate()` therefore accepts a schema whose `allOf` / `anyOf` / `oneOf` chain refers back to itself, returning no error. The runtime validators do not have that protection. When such a schema is used for request or response validation, the recursion through the combinator chain is unbounded. In Go this produces a **fatal stack overflow** (`runtime: goroutine stack exceeds ... limit` / `fatal error: stack overflow`), which is **not** a recoverable panic. `recover()` cannot catch it, so `net/http`'s per-connection recovery does not help. The entire process is terminated, including all goroutines serving unrelated clients. Two independent unguarded recursion sites were confirmed: 1. `openapi3/schema.go` — `visitJSON` / `visitXOFOperations` (reached by `VisitJSON`, i.e. response validation and direct schema validation). 2. `openapi3filter/req_resp_decoder.go` — `decodeValue` (reached first during request parameter decoding). The report also identifies the same gap in `urlValuesDecoder.parseValue` and `buildResObj`/`buildFromSchemas`. ## Details ### Root Cause `Schema.validate()` has cycle detection (`openapi3/schema.go:1396`): ```go func (schema *Schema) validate(ctx context.Context, stack []*Schema) ([]*Schema, error) { if slices.Contains(stack, schema) { return stack, nil } // ... stack = append(stack, schema) ``` The runtime visitor has none. `visitJSON` (line 1951) calls `visitXOFOperations` (line 2189), which iterates the combinator slice and calls `visitJSON` again on each sub-schema: ```go func (schema *Schema) visitXOFOperations(settings *schemaValidationSettings, value any) (err error, run bool) { // ... for idx, item := range v { // v = schema.OneOf / AnyOf / AllOf v := item.Value // no

Properties

Summary
kin-openapi: Uncontrolled Recursion on Circular allOf/anyOf/oneOf Schemas Causes Fatal Process Crash
Severity
high
Nvd fetched at
2026-10-20T21:14:08.448323+00:00
Epss score
0.00435
Cvss severity
HIGH
Cvss score
7.5
Retrieved at
2026-10-21T01:24:48+00:00
Ghsa published
2026-10-15T20:20:37Z
Source url
https://github.com/advisories/GHSA-g8cf-rcjf-c8cf
Ghsa updated
2026-10-15T20:20:38Z
Ghsa id
GHSA-g8cf-rcjf-c8cf
Last source
FIRST EPSS
Cvss version
3.1
Score
7.5
Cve id
CVE-2026-100354
Cvss vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
First seen by Signal
2026-10-15T22:56:51+00:00
Is ghsa only
false
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Published at
2026-10-15T17:17:07.780

Related Entities (3)

AFFECTS (1)

HAS_WEAKNESS (1)

VULNERABLE_TO (1)

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-100354 (CVSS v3.1 7.5) — Ninja Signal Threat Intelligence | Ninja Signal