
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-31949 is a Denial of Service (DoS) vulnerability in LibreChat, an open-source ChatGPT-like application, affecting all versions up to and including 0.8.2. An authenticated attacker can crash the Node.js server process by sending a malformed DELETE request to the /api/convos endpoint, causing complete service unavailability for all users. The vulnerability was published on March 13, 2026, and patched in version 0.8.3-rc1. It carries a CVSS v3.1 base score of 6.5 (Medium) (GitHub Advisory).
The root cause is missing input validation in the DELETE /api/convos route handler (api/server/routes/convos.js, line 88), classified as CWE-248 (Uncaught Exception). The handler attempts to destructure req.body.arg without first verifying that req.body or req.body.arg exists; when arg is absent or null, a TypeError is thrown synchronously. Because Express 4 does not automatically catch errors from async route handlers, this TypeError escapes the Express error handling middleware and is instead caught by the global uncaughtException handler in api/server/index.js (~line 416), which calls process.exit(1), terminating the entire Node.js process. Notably, other routes in the same file (e.g., POST /api/convos/update and POST /api/convos/archive) correctly use optional chaining (req.body.arg ?? {}) to avoid this issue (GitHub Advisory).
Successful exploitation results in a complete crash of the LibreChat Node.js server process via process.exit(1), causing total service unavailability for all users until the process is manually restarted. All in-flight requests are terminated upon crash, though no data corruption or confidentiality breach occurs. There is no integrity or confidentiality impact; the sole consequence is high availability impact affecting the entire LibreChat deployment (GitHub Advisory).
A proof-of-concept exploit is publicly available in the GitHub Security Advisory, consisting of simple curl commands requiring only a valid JWT token. The attack requires low privileges (any authenticated user) and no user interaction, and can be triggered repeatedly with a single HTTP request. The EPSS score is approximately 0.039%, and there is no evidence of active in-the-wild exploitation or CISA KEV catalog listing as of the time of publication (GitHub Advisory).
/api/convos with an empty JSON body ({}) or a body containing {"arg": null}, omitting the required arg object.curl -X DELETE https://example.com/api/convos \
-H "Authorization: Bearer <valid_jwt_token>" \
-H "Content-Type: application/json" \
-d '{}'req.body.arg causes a synchronous TypeError during destructuring, which escapes Express middleware and is caught by the global uncaughtException handler, which calls process.exit(1), crashing the entire Node.js process.TypeError: Cannot destructure property 'conversationId' of 'req.body.arg' as it is undefined followed by process.exit(1) or sudden process termination entries in application logs./api/convos with a Content-Type: application/json header and an empty or null body from a single authenticated user in rapid succession./api/convos endpoint with minimal or empty JSON payloads ({} or {"arg": null}) from the same source IP.The primary remediation is to upgrade LibreChat to version 0.8.3-rc1 or later, which fixes the vulnerability. As a workaround prior to patching, operators can add input validation before the destructuring step in api/server/routes/convos.js to check that req.body and req.body.arg exist, returning a 400 error if not, or use optional chaining (req.body.arg ?? {}) consistent with other routes in the same file. Additionally, implementing rate limiting on the DELETE /api/convos endpoint and adding a global unhandledRejection handler can reduce the impact of exploitation attempts (GitHub Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."