Orval: RCE via OpenAPI path -> unescaped request-URL template literal (backtick breakout)
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-62681
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 16:11 UTC · Revision 1
Source evidence
Orval: RCE via OpenAPI path -> unescaped request-URL template literal (backtick breakout)
core-osv · Original sourcePublished 19 Aug 2026, 17:31 UTC
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.
osv:CVE-2026-62681
Complete source record
{
"id": "c48713125e74097f1522afe6c35f57cf85313054d7eb911f712d9eb45c093506",
"url": "https://osv.dev/vulnerability/CVE-2026-62681",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Orval: RCE via OpenAPI path -> unescaped request-URL template literal (backtick breakout)",
"summary": "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.",
"evidence": "osv:CVE-2026-62681",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-62681",
"aliases": [
"CVE-2026-62681",
"GHSA-fg9p-mrxr-hvq7"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/orval-labs/orval",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "1d1a1d07b8faf1615bfd4b06c7783a3a51c038df"
},
{
"fixed": "8ef1bfdf3f9bcaf9dabfbe2e42887f1c0e159ab6"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "8.21.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "8ef1bfdf3f9bcaf9dabfbe2e42887f1c0e159ab6"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "1d1a1d07b8faf1615bfd4b06c7783a3a51c038df"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v8.21.0"
}
]
}
}
],
"versions": [
"v8.20.0",
"v8.19.0",
"v8.18.0",
"v8.17.0",
"v8.16.0",
"v8.15.0",
"v8.14.0",
"v8.13.0",
"v8.12.3",
"v8.12.2",
"v8.12.1",
"v8.11.0",
"v8.10.0",
"v8.9.1",
"v8.9.0",
"v8.8.1",
"v8.8.0",
"v8.7.0",
"v8.6.2",
"v8.6.1",
"v8.6.0",
"v8.5.3",
"v8.5.2",
"v8.5.1",
"v8.5.0",
"v8.4.2",
"v8.4.1",
"v8.4.0",
"v8.3.0",
"v8.2.0",
"v8.0.3",
"v8.0.2",
"v8.0.1",
"v8.0.0",
"v8.0.0-rc.6",
"v8.0.0-rc.5",
"v8.0.0-rc.4",
"v8.0.0-rc.3",
"v8.0.0-rc.2",
"v7.15.0",
"v8.0.0-rc.1",
"v8.0.0-rc.0",
"v7.14.0",
"v7.13.2",
"v7.13.1",
"v7.13.0",
"v7.12.2",
"v7.12.1",
"v7.12.0",
"v7.11.2",
"v7.11.1",
"v7.11.0",
"v7.10.0",
"v7.9.0",
"v7.8.0",
"v7.7.0",
"v7.6.0",
"v7.5.0",
"v7.4.1",
"v7.4.0",
"v7.3.0",
"v7.2.0",
"v7.1.1",
"v7.1.0",
"v7.0.1",
"v7.0.0",
"v6.31.0",
"v6.30.2",
"v6.30.1",
"v6.30.0",
"v6.29.1",
"v6.29.0",
"v6.28.2",
"v6.28.1",
"v6.28.0",
"v6.27.1",
"v6.27.0",
"v6.26.0",
"v6.25.0",
"v6.24.0",
"v6.23.0",
"v6.22.1",
"v6.22.0",
"v6.21.0",
"v6.20.0",
"v6.19.1",
"v6.19.0",
"v6.18.1",
"v6.18.0",
"v6.17.0",
"v6.16.0",
"v6.15.0",
"v6.14.4",
"v6.14.3",
"v6.14.2",
"v6.14.1",
"v6.14.0",
"v6.13.1",
"v6.13.0",
"v6.12.1",
"v6.12.0",
"v6.11.1",
"v6.11.0",
"v6.10.3",
"v6.10.2",
"v6.9.6",
"v6.9.5",
"v6.9.4",
"v6.9.3",
"v6.9.2",
"v6.9.1",
"v6.9.0",
"v6.8.1",
"v6.8.0",
"v6.7.1",
"v6.7.0",
"v6.6.4",
"v6.6.3",
"v6.6.2",
"v6.6.1",
"v6.6.0",
"v6.5.3",
"v6.5.2",
"v6.5.1",
"v6.5.0",
"v6.4.3",
"v6.4.2",
"v6.4.1",
"v6.4.0",
"v6.3.0",
"v6.2.3",
"v6.2.2",
"v6.2.1",
"v6.2.0",
"v6.1.2",
"v6.1.1",
"v6.1.0",
"v6.0.4",
"v6.0.3",
"v6.0.2",
"v6.0.1",
"v6.0.0",
"v5.5.0",
"v5.4.14",
"v5.4.13",
"v5.4.12",
"v5.4.11",
"v5.4.10",
"v5.4.9",
"v5.4.8",
"v5.4.7",
"v5.4.6",
"v5.4.5",
"v5.4.4",
"v5.4.3",
"v5.4.2",
"v5.4.1",
"v5.4.0",
"v5.3.2",
"v5.3.1",
"v5.3.0",
"v5.2.0",
"v5.1.4",
"v5.1.3",
"v5.1.2",
"v5.1.1",
"v5.1.0",
"v5.0.0",
"v4.2.0",
"v3.2.3",
"v3.2.2",
"v3.2.1",
"v3.2.0",
"v3.1.9",
"v3.1.8",
"v3.1.7",
"v3.1.6",
"v3.1.5",
"v3.1.4",
"v3.1.3",
"v3.1.2",
"v3.1.1",
"v3.1.0",
"v3.0.3",
"v3.0.2",
"v3.0.1",
"v3.0.0",
"v2.6.0",
"v2.5.9",
"v2.5.8",
"v2.5.7",
"v2.5.6",
"v2.5.5",
"v2.5.4",
"v2.5.3",
"v2.5.2",
"v2.5.1",
"v2.5.0",
"v2.4.1",
"v2.4.0",
"v2.3.1",
"v2.3.0",
"v2.2.2",
"v2.2.1",
"v2.2.0",
"v2.1.2",
"v2.1.1",
"v2.1.0",
"v2.0.7",
"v2.0.6",
"v2.0.5",
"v2.0.4",
"v2.0.3",
"v2.0.2",
"v2.0.1",
"v2.0.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-62681.json"
}
}
],
"modified": "2026-10-28T02:30:30.319270595Z",
"provider": "osv",
"references": [
"https://github.com/orval-labs/orval/releases/tag/v8.21.0",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/62xxx/CVE-2026-62681.json",
"https://github.com/orval-labs/orval/security/advisories/GHSA-fg9p-mrxr-hvq7",
"https://nvd.nist.gov/vuln/detail/CVE-2026-62681",
"https://github.com/orval-labs/orval/commit/8ef1bfdf3f9bcaf9dabfbe2e42887f1c0e159ab6",
"https://github.com/orval-labs/orval/pull/3692"
],
"provider_metadata": {
"cwe_ids": [
"CWE-116",
"CWE-1336",
"CWE-94"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/62xxx/CVE-2026-62681.json"
}
},
"related_cves": [
{
"value": "CVE-2026-62681",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 497176,
"published_at": "2026-08-19T17:31:02.756+00:00"
}