CVE-2026-71866: Orval: Import-time RCE via schema property name -> computed-property-key injection in the zod client
Orval generates type-safe JavaScript clients in TypeScript from OpenAPI v3 and Swagger v2 specifications. From version 8.19.0 until 8.21.0, a double quote in a schema property name is emitted into the generated zod.object({...}) schema without safe encoding. This permits attacker-controlled JavaScript to be evaluated when the generated zod schema module is imported, resulting in code execution in the developer, CI, test, or application environment. The affected code is packages/zod/src/index.ts and zod object-key generation. This issue is fixed in version 8.21.0.
Security readout for executives and security teams
Plain-English summary
A malicious or compromised API specification can make Orval generate JavaScript that runs when the generated Zod client is imported. This could compromise developer workstations, CI systems, test environments, or applications, exposing code, credentials, and build artifacts.
Executive priority
Prioritize immediate remediation wherever Orval processes external or changeable specifications in credentialed developer or CI environments. Upgrade and regenerate affected clients before normal pipeline execution. Systems using only trusted, immutable specifications remain exposed to specification compromise and should still be updated promptly.
Technical view
Orval fails to safely encode a double quote within an OpenAPI schema property name when generating zod.object keys. An attacker controlling the specification can inject JavaScript into the generated module. Importing that module triggers code execution. The bundle identifies 8.21.0 as the fixed release.
Likely exposure
Exposure requires Orval Zod client generation from an attacker-controlled or compromised OpenAPI or Swagger specification, followed by importing the generated module. Internet-facing schema sources, third-party specifications, automated generation pipelines, and committed generated clients increase risk. Other Orval generators are not established as affected by the supplied evidence.
Exploitation context
The CVSS 4.0 score is 9.3 because exploitation can lead to complete confidentiality, integrity, and availability impact in the executing environment. The supplied sources do not establish active exploitation, and the CVE is not listed as KEV in the bundle.
Researcher notes
The bundle describes the vulnerable range as 8.19.0 through versions before 8.21.0, while its structured affected field says all versions below 8.21.0. Confirm the precise lower boundary against the vendor advisory. CWE-95 directly matches code injection; the supplied CWE-89 classification appears less specific.
Mitigation direction
Upgrade Orval to version 8.21.0 or later.
Regenerate Zod clients only from trusted, reviewed specifications.
Review previously generated modules before importing or deploying them.
Treat suspicious generation activity as a potential compromise and rotate exposed credentials.
Validation and detection
Identify projects and CI workflows using Orval Zod generation.
Confirm the installed and lockfile-resolved Orval version is 8.21.0 or later.
Trace the provenance and integrity of every specification used for generation.
Inspect generated Zod modules for unexpected executable expressions in object keys.
Review affected environments for unusual processes, network activity, or credential use.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-89: Database access and collection lookup
Injection into data stores can inform collection, data access, and exfiltration detection reviews. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Code execution and unsafe deserialization weaknesses often justify reviewing execution behavior and process telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
5Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: yesTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-89 · source CWE mapping
Improper Neutralization of Special Elements used in an SQL Command
Improper Neutralization of Special Elements used in an SQL Command represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Improper Neutralization of Directives in Dynamically Evaluated Code
Improper Neutralization of Directives in Dynamically Evaluated Code represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.