CVE-2026-31949LibreChat是一款开源的ChatGPT克隆项目,具有额外的功能特性。在0.8.3-rc1之前的版本中,存在一个拒绝服务(DoS)漏洞,漏洞位于DELETE /api/convos端点。该漏洞允许经过身份认证的低权限攻击者通过发送格式错误的请求来导致Node.js服务器进程崩溃。攻击者利用了DELETE /api/convos路由处理器尝试解构req.body.arg参数时未进行存在性验证的问题,当请求体中缺少arg属性时,会触发未处理的TypeError错误。该错误绕过了Express的错误处理中间件,直接触发process.exit(1),导致服务器进程终止。此漏洞可被远程利用,对服务的可用性造成严重影响。
漏洞根源在于LibreChat的/api/convos DELETE路由处理器中存在不安全的参数解构操作。代码直接执行const { arg } = req.body而未检查req.body是否存在或arg属性是否存在。当攻击者发送一个不包含arg字段的DELETE请求时,JavaScript会尝试从undefined中解构arg属性,触发TypeError: Cannot destructure property 'arg' of 'undefined' as it is undefined。由于Express的错误处理中间件无法捕获这种同步解构错误,错误会向上传播,最终导致Node.js进程调用process.exit(1)强制终止。攻击者只需拥有有效的用户凭据,即可构造恶意DELETE请求到/api/convos端点,无需特殊的权限即可触发漏洞。修复方案是在解构前验证req.body是否存在,或使用可选链操作符提供默认值。