Critical severityOSV Advisory· Published Jan 12, 2026· Updated Jan 12, 2026
orval MCP client is vulnerable to a code injection attack.
CVE-2026-22785
Description
orval generates type-safe JS clients (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification. Prior to 7.18.0, the MCP server generation logic relies on string manipulation that incorporates the summary field from the OpenAPI specification without proper validation or escaping. This allows an attacker to "break out" of the string literal and inject arbitrary code. This vulnerability is fixed in 7.18.0.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
@orval/mcpnpm | < 7.18.0 | 7.18.0 |
Affected products
1- Range: v2.0.0, v2.0.1, v2.0.2, …
Patches
180b5fe73b94ffix(mdp): Sanitize strings before passing to MCP tool
1 file changed · +11 −10
packages/mcp/src/index.ts+11 −10 modified@@ -12,6 +12,7 @@ import { getFileInfo, getFullRoute, jsDoc, + jsStringEscape, NormalizedOutputOptions, pascal, upath, @@ -184,30 +185,30 @@ export const generateServer = async ( const toolImplementations = Object.values(verbOptions) .map((verbOption) => { - const imputSchemaTypes = []; + const inputSchemaTypes = []; if (verbOption.params.length > 0) - imputSchemaTypes.push( + inputSchemaTypes.push( ` pathParams: ${verbOption.operationName}Params`, ); if (verbOption.queryParams) - imputSchemaTypes.push( + inputSchemaTypes.push( ` queryParams: ${verbOption.operationName}QueryParams`, ); if (verbOption.body.definition) - imputSchemaTypes.push(` bodyParams: ${verbOption.operationName}Body`); + inputSchemaTypes.push(` bodyParams: ${verbOption.operationName}Body`); - const imputSchemaImplementation = - imputSchemaTypes.length > 0 + const inputSchemaImplementation = + inputSchemaTypes.length > 0 ? ` { - ${imputSchemaTypes.join(',\n ')} + ${inputSchemaTypes.join(',\n ')} },` : ''; const toolImplementation = ` server.tool( - '${verbOption.operationName}', - '${verbOption.summary}',${imputSchemaImplementation ? `\n${imputSchemaImplementation}` : ''} - ${verbOption.operationName}Handler + '${jsStringEscape(verbOption.operationName)}', + '${jsStringEscape(verbOption.summary)}',${inputSchemaImplementation ? `\n${inputSchemaImplementation}` : ''} + ${jsStringEscape(verbOption.operationName)}Handler );`; return toolImplementation;
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
4- github.com/advisories/GHSA-mwr6-3gp8-9jmjghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2026-22785ghsaADVISORY
- github.com/orval-labs/orval/commit/80b5fe73b94f120a3a5561952d6d4b0f8d7e928dghsax_refsource_MISCWEB
- github.com/orval-labs/orval/security/advisories/GHSA-mwr6-3gp8-9jmjghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.