CVE-2026-24132CVE-2026-24132是Orval项目中的一个严重代码注入漏洞。Orval是一个用于从OpenAPI v3或Swagger v2规范生成类型安全JavaScript/TypeScript客户端的工具。该漏洞影响7.19.0及以下版本和8.0.0-rc.0至8.0.2版本。攻击者可以通过构造恶意的OpenAPI规范文件,利用schema属性中的const关键字注入任意TypeScript/JavaScript代码到生成的mock文件中。这些恶意代码会被插入到接口定义和faker/MSW处理器中,导致远程代码执行风险。由于Orval在生成客户端代码时直接使用用户提供的const值而未进行适当的转义或类型安全序列化,攻击者可以绕过安全限制,在受害者构建或测试项目时执行恶意代码。此漏洞与之前报告的enum x-enumDescriptions漏洞(GHSA-h526-wf6g-67jv)影响类似,但作用于faker-based mock生成器的不同代码路径。
漏洞根源在于Orval的mock scalar生成器(packages/mock/src/faker/getters/scalar.ts中的getMockScalar函数)。当处理OpenAPI规范中的schema属性时,代码直接使用const关键字定义的值进行字符串插值,生成TypeScript mock代码。攻击者可以在OpenAPI规范的schema中构造如下恶意const值:const: "test; require('child_process').exec('malicious_command')" 当Orval处理此规范生成mock文件时,这个恶意代码会被直接嵌入到生成的TypeScript代码中。在项目构建、测试或开发服务器启动时,这些恶意代码会被Node.js解释器执行,从而实现远程代码执行。攻击成功的关键在于Orval缺乏对const值的输入验证和输出编码,导致用户控制的字符串被直接注入到代码生成流程中。