CVE-2025-7105
Chainguard vulnerability analysis and mitigation

Overview

CVE-2025-7105 is a Denial of Service (DoS) vulnerability in danny-avila/LibreChat caused by uncontrolled resource consumption in the conversation forking endpoint. An authenticated attacker can exploit the unrestricted /api/convos/fork endpoint to rapidly fork conversations containing Mermaid graphs with a large number of nodes, triggering a JavaScript heap out-of-memory error upon service restart. The vulnerability affects LibreChat versions prior to v0.7.9. It carries a CVSS v3.0 base score of 5.7 (Medium) (Feedly, EUVD).

Technical details

The root cause is CWE-400 (Uncontrolled Resource Consumption): the /api/convos/fork API endpoint lacked any rate limiting, allowing authenticated users to submit an unbounded number of fork requests in rapid succession. If the forked conversation content includes a Mermaid diagram with a large node count, the server's JavaScript runtime exhausts heap memory when processing or re-rendering these graphs, particularly during service restart. The fix, implemented in commit 97a99985, introduces both IP-based and user-based rate limiters (forkIpLimiter, forkUserLimiter) using express-rate-limit, with configurable environment variables (FORK_IP_MAX, FORK_USER_MAX, FORK_IP_WINDOW, FORK_USER_WINDOW) and optional Redis-backed storage (GitHub Commit).

Impact

Successful exploitation causes a JavaScript heap out-of-memory crash on the LibreChat server, resulting in a complete denial of service for all users of the affected instance. The vulnerability has no confidentiality or integrity impact — only availability is affected. Because the crash manifests upon service restart, recovery requires manual intervention, potentially causing extended downtime for self-hosted LibreChat deployments (Feedly, Huntr).

Exploitability

Exploitation requires a low-privilege authenticated account (network-accessible, low complexity), but also requires user interaction per the CVSS vector, suggesting the heap crash is triggered upon a subsequent service restart rather than immediately. No public exploit code or weaponized tooling has been identified. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, and the EPSS score is approximately 0.036%, indicating a very low probability of near-term exploitation in the wild (Feedly).

Exploitation steps

  1. Authentication: Log in to a LibreChat instance running a version prior to v0.7.9 with any valid user account.
  2. Craft malicious conversation: Create or identify a conversation containing a Mermaid graph code block with a very large number of nodes (e.g., hundreds or thousands of interconnected nodes).
  3. Rapid fork requests: Send a high volume of POST requests to /api/convos/fork in rapid succession, referencing the conversation with the large Mermaid graph. This can be scripted using tools like curl or Python requests.
  4. Trigger OOM on restart: The forked conversations with large Mermaid graphs are persisted. Upon the next service restart, LibreChat attempts to process or index these conversations, exhausting the JavaScript heap memory and crashing the Node.js process.
  5. Denial of Service achieved: The service fails to start or crashes repeatedly, denying access to all users until an administrator manually clears the malicious forked conversations and restarts the service (Huntr, GitHub Commit).

Indicators of compromise

  • Network: Unusually high volume of POST requests to /api/convos/fork from a single IP or user account within a short time window; HTTP 429 responses (after patching) indicating rate limit triggers.
  • Logs: Node.js process logs showing FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory; repeated service crash/restart cycles in process manager logs (e.g., PM2, systemd).
  • Application: Large number of forked conversations in the database attributed to a single user, particularly those containing Mermaid graph blocks with abnormally high node counts.
  • Process: LibreChat Node.js process terminating unexpectedly with exit code related to memory allocation failure during startup or conversation indexing.

Mitigation and workarounds

Upgrade LibreChat to version v0.7.9 or later, which introduces rate limiting on the /api/convos/fork endpoint via the commit 97a99985 (GitHub Commit). After upgrading, administrators can tune rate limit behavior using environment variables: FORK_IP_MAX (default: 30 requests/window per IP), FORK_USER_MAX (default: 7 requests/window per user), FORK_IP_WINDOW, and FORK_USER_WINDOW (both default: 1 minute). For Redis-backed deployments, set USE_REDIS=true to enable distributed rate limit tracking. As a temporary workaround prior to patching, restrict access to the /api/convos/fork endpoint via a reverse proxy or WAF rule.

Community reactions

The vulnerability was reported through the Huntr bug bounty platform and disclosed on February 2, 2026. No significant public commentary, vendor statements beyond the patch commit, or notable media coverage has been identified for this medium-severity DoS issue (Huntr).

Additional resources


SourceThis report was generated using AI

Related Chainguard vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-86175HIGH7.1
  • Chainguard logoChainguard
  • netbox
NoNoSep 05, 2026
CVE-2026-86116HIGH7.1
  • Metabase logoMetabase
  • cpe:2.3:a:metabase:metabase
NoYesSep 05, 2026
CVE-2026-86144MEDIUM5.6
  • Wolfi logoWolfi
  • libxml2-static
NoYesSep 05, 2026
CVE-2026-86176MEDIUM5.3
  • Chainguard logoChainguard
  • netbox
NoNoSep 05, 2026
CVE-2026-84445HIGHN/A
  • Nomad logoNomad
  • terraform-docs
NoYesSep 08, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management