Orval has a code injection via unsanitized x-enum-descriptions in enum generation
### Impact Arbitrary code execution in environments consuming generated clients This issue is similar in nature to the recently-patched MCP vulnerability (CVE-2026-22785), but affects a different code path in @orval/core that was not addressed by that fix. The vulnerability allows untrusted OpenAPI specifications to inject arbitrary TypeScript/JavaScript code into generated clients via the x-enumDescriptions field, which is embedded without proper escaping in getEnumImplementation(). I have confirmed that the injection occurs during const enum generation and results in executable code within the generated schema files. ### Patches Upgrade to Orval 8.0.2 ### References An example OpenAPI showing the issue: ```yaml openapi: 3.0.4 info: title: Enum PoC version: "1.0.0" paths: /ping: get: operationId: ping responses: "200": description: ok content: application/json: schema: $ref: "#/components/schemas/EvilEnum" components: schemas: EvilEnum: type: string enum: - PWNED x-enumDescriptions: - "pwned */ require('child_process').execSync('id'); /*" ```
beschreibt (1)
Zugehörige CVEs.
| ID | Schweregrad | ausnutzbar | ||
|---|---|---|---|---|
| CVE-2026-23947US | critical9.8 | Exploit | ||
Orval generates type-safe JS clients (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification. Versions prior to 7.19.0 until 8.0.2 are vulnerable to arbitrary code execu… | ||||
Referenzen
Externe Belege — Patches, Meldungen, Analysen.
- https://github.com/orval-labs/orvalPACKAGE
- https://github.com/orval-labs/orval/commit/9e5d93533904936678ba93b5d20f6bca176a4e1eWEB
- https://github.com/orval-labs/orval/releases/tag/v7.19.0WEB
- https://github.com/orval-labs/orval/releases/tag/v8.0.2WEB
- https://github.com/orval-labs/orval/security/advisories/GHSA-h526-wf6g-67jvWEB
- https://nvd.nist.gov/vuln/detail/CVE-2026-23947ADVISORY
Advisories wie diese benennen die exponierten Produkte, die Angreifer auf Ihrer Angriffsfläche ins Visier nehmen. Sehen Sie mit einem kostenlosen Passiv-Scan, was exponiert ist.
Kostenloser Scan