CVE-2026-42047Inngest是一个用于运行事件驱动和计划后台函数的平台。在3.22.0至3.53.1版本中,该组件的`serve()` HTTP处理程序存在严重安全漏洞。未经身份验证的远程攻击者可利用PATCH、OPTIONS或DELETE等HTTP方法触发诊断信息响应,从而窃取主机进程的环境变量。由于变更导致该诊断响应包含了`process.env`的内容,攻击者可借此获取系统中的敏感密钥、API凭证等关键信息,对应用安全构成严重威胁。
该漏洞的根本原因在于Inngest JavaScript库中`serve()`函数的HTTP请求路由实现机制。该函数仅显式处理了GET、POST和PUT这三种标准的API请求方法。然而,当服务器接收到PATCH、OPTIONS或DELETE等未显式定义的HTTP方法请求时,请求会穿透到默认的兜底处理逻辑。在受影响的版本(3.22.0至3.53.1)中,由于代码变更,该兜底逻辑被修改为返回详细的诊断调试信息,其中意外地包含了Node.js进程中所有的环境变量对象(`process.env`)。在常见的部署架构中,例如使用Next.js的Pages Router或Express中间件模式时,路由层通常会默认转发所有类型的HTTP方法到处理函数,除非进行了显式拦截。因此,攻击者无需经过任何身份验证,也无需用户交互,只需向暴露的Inngest服务端点发送一个PATCH、OPTIONS或DELETE请求,即可触发该逻辑。服务器响应将包含敏感的环境变量,如数据库连接字符串、第三方API密钥、云服务凭证等,从而导致严重的信息泄露事故。