Orval generates type-safe JavaScript clients in TypeScript from OpenAPI v3 and Swagger v2 specifications. Prior to 8.21.0, an unescaped backtick in an OpenAPI path is emitted into request URL template literals generated for axios, fetch, react-query, and SWR clients without safe encoding. This permits attacker-controlled JavaScript to be evaluated when a generated request, URL-builder, or query-key function is called, resulting in code execution in the developer, CI, test, or application environment. The affected code is packages/core/src/getters/route.ts and route generation consumers. This issue is fixed in version 8.21.0.
Security readout for executives and security teams
Plain-English summary
Orval versions before 8.21.0 can turn a malicious OpenAPI path into executable JavaScript inside generated API clients. Code may run when affected generated functions are called, potentially compromising developer machines, CI pipelines, tests, or deployed applications.
Executive priority
Treat this as an immediate software-supply-chain remediation. Prioritize internet-fed or third-party specifications and privileged CI environments first. Upgrade, regenerate clients, and investigate unexpected specification or generated-code changes before trusting affected pipelines.
Technical view
Orval failed to escape backticks from OpenAPI paths before embedding them in JavaScript template literals. Generated axios, fetch, react-query, and SWR request, URL-builder, or query-key functions can therefore execute injected JavaScript. The vulnerable route-generation logic was fixed in Orval 8.21.0.
Likely exposure
Exposure requires Orval below 8.21.0, an attacker-controlled or compromised OpenAPI specification, generation of an affected client, and invocation of the generated function. Organizations consuming third-party or remotely supplied specifications face greater risk. Previously generated artifacts should also be reviewed.
Exploitation context
The supplied sources do not establish active exploitation, and this CVE is not listed as KEV in the bundle. Nevertheless, the reported network-accessible input path, low complexity, lack of required privileges or interaction, and potential code execution support urgent defensive action.
Researcher notes
The weakness combines improper output encoding and template-expression injection, resulting in JavaScript code execution. Affected consumers include axios, fetch, react-query, and SWR generators. Available evidence identifies the vulnerable route logic and fixed release, but does not quantify deployment prevalence or confirm attacks.
Mitigation direction
Upgrade Orval to version 8.21.0 or later.
Regenerate affected clients after upgrading, using verified OpenAPI specifications.
Temporarily reject untrusted or unexpectedly changed specifications from generation workflows.
Review vendor guidance and the published fix before restoring automated specification ingestion.
Validation and detection
Check manifests and lockfiles for Orval versions below 8.21.0.
Inventory CI, developer, test, and deployment workflows that generate Orval clients.
Identify specifications obtained from third parties, remote locations, or insufficiently controlled repositories.
Review existing generated clients for unsafe path content and replace them with regenerated artifacts.
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-116: User-session and phishing behavior lookup
Client-side and session-facing weaknesses should be reviewed alongside initial-access and user-execution behaviors. 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.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. 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.