☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-8849

CVE-2025-8849 Denial of Service in Librechat
📅 PUBLISHED: 2025-10-30 23:42 UTC 🔄 UPDATED: 2026-09-23 20:30 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.32%
👁️
0.32% probability
8.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-8849 is a Denial of Service (DoS) vulnerability affecting LibreChat version 0.7.9. The flaw resides in the /api/memories endpoint, where the key and value parameters accept arbitrarily large inputs without proper validation. Submitting excessively large values triggers a null pointer error in the Rust-based backend, preventing the creation of new memories and degrading service stability. The CVSS score is 5.4 (Medium), with a low attack complexity and no authentication required. No public exploit code or patch is currently available.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

LibreChat is a Node.js application with a Rust-based backend component. The vulnerability is not directly related to a package manager (NPM, PyPI, Go, Ruby) but involves the Rust backend's memory handling. The risk of supply chain compromise is low, but the lack of a patch increases operational risk.

CVSS Breakdown & Threat Level

  • CVSS Score: 5.4 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: None
  • Integrity Impact: None
  • Availability Impact: Low

The threat level is medium due to the ease of exploitation (no authentication, low complexity) and the potential for service disruption. The EPSS score of 0.0% indicates low exploitation likelihood in the wild, but this may change as details become public.

Deep Dive & Mechanics

The vulnerability is a classic case of unbounded input leading to resource exhaustion. The /api/memories endpoint accepts key and value parameters. Without size limits, an attacker can send extremely large strings (e.g., megabytes of data). The Rust backend, which processes these inputs, attempts to allocate memory for the values. When the input exceeds available memory or triggers a null pointer dereference due to failed allocation, the backend crashes or enters an error state, preventing new memories from being created.

The root cause is the lack of input validation and size limits on the key and value parameters. The Rust backend likely uses a function that does not handle large allocations gracefully, leading to a null pointer error.

Vulnerable vs. Patched Code

Vulnerable Code (LibreChat 0.7.9):

// Example of vulnerable endpoint handler (simplified)
app.post('/api/memories', (req, res) => {
  const { key, value } = req.body;
  // No size validation
  rustBackend.createMemory(key, value);
  res.status(200).send('Memory created');
});

Patched Code (Hypothetical):

// Example of patched endpoint handler
app.post('/api/memories', (req, res) => {
  const { key, value } = req.body;
  // Validate input size
  if (key.length > 256 || value.length > 1024) {
    return res.status(400).send('Input too large');
  }
  rustBackend.createMemory(key, value);
  res.status(200).send('Memory created');
});

The patch would involve adding input size validation in the Node.js layer before passing data to the Rust backend.

Exploitation & Lab Setup

Red Team

  1. Setup: Deploy LibreChat 0.7.9 in a controlled environment (e.g., Docker container).
  2. Exploit: Send a POST request to /api/memories with an extremely large key or value parameter.
# Example using curl
curl -X POST http://target:3080/api/memories \
  -H "Content-Type: application/json" \
  -d '{"key": "A", "value": "'$(python3 -c 'print("A"*1000000)')'"}'
  1. Observation: The service becomes unresponsive or returns errors for subsequent memory creation requests.

Blue Team

  1. Detection: Monitor for unusually large POST request bodies to /api/memories.
  2. Mitigation: Implement input size limits at the reverse proxy (e.g., Nginx client_max_body_size).
  3. Response: Restart the LibreChat service if it becomes unresponsive.

Indicators of Compromise (IOCs)

  • Network: POST requests to /api/memories with body size > 1 MB.
  • Logs: Error logs from Rust backend indicating null pointer or memory allocation failure.
  • System: High memory usage on the LibreChat server.

Detection Engineering

YARA Rule

rule CVE_2025_8849_LibreChat_DoS {
  meta:
    description = "Detects exploit attempts for CVE-2025-8849"
    author = "Valters IT"
    date = "2025-04-01"
  strings:
    $http_post = "POST /api/memories"
    $large_body = /"value"\s*:\s*"[A-Za-z0-9]{1000,}/
  condition:
    $http_post and $large_body
}

Sigma Rule

title: CVE-2025-8849 LibreChat DoS Exploit Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects large POST requests to /api/memories
author: Valters IT
logsource:
  category: webserver
  product: nginx
detection:
  selection:
    http.method: POST
    http.url: "/api/memories"
    http.body_length: ">1000000"
  condition: selection
falsepositives:
  - Legitimate large memory entries (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-8849 LibreChat DoS Exploit Attempt"; flow:to_server; http.method; content:"POST"; http.uri; content:"/api/memories"; http.request_body; content:"value"; pcre:"/\"value\"\s*:\s*\"[A-Za-z0-9]{1000,}/"; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Restrict access to the /api/memories endpoint using a Web Application Firewall (WAF) or reverse proxy (e.g., Nginx client_max_body_size 1M).
  2. Short-term: Implement input validation in the Node.js layer to limit key and value sizes.
  3. Long-term: Apply the official patch when released by LibreChat. Monitor the vendor's GitHub repository for updates.
  4. Workaround: Disable the memories feature if not critical.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-8849/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.