Skip to main content
CVE Vulnerability Database

CVE-2024-9229: Quivr File Upload DoS Vulnerability

CVE-2024-9229 is a Denial of Service flaw in stangirard/quivr v0.0.298 that enables unauthenticated attackers to exhaust server resources via malformed file uploads. This article covers technical details, impact, and fixes.

Published:

CVE-2024-9229 Overview

CVE-2024-9229 is a Denial of Service (DoS) vulnerability affecting the file upload feature of stangirard/quivr version 0.0.298. Unauthenticated attackers can trigger excessive resource consumption by appending characters to the end of a multipart boundary in an HTTP request. The server continuously processes each appended character, exhausting compute resources and rendering the service unavailable to all users. The flaw is categorized as [CWE-770] Allocation of Resources Without Limits or Throttling.

Critical Impact

Remote, unauthenticated attackers can render the Quivr service unavailable through malformed multipart file upload requests, disrupting availability for all users.

Affected Products

  • stangirard/quivr version 0.0.298
  • Earlier Quivr releases sharing the same multipart upload handling logic
  • Deployments exposing the file upload endpoint to untrusted networks

Discovery Timeline

  • 2025-03-20 - CVE-2024-9229 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2024-9229

Vulnerability Analysis

Quivr is an open-source generative AI application that accepts user file uploads for downstream retrieval-augmented generation workflows. The upload endpoint parses multipart/form-data requests using boundary delimiters supplied in the Content-Type header. The vulnerable parser does not enforce sane bounds on boundary length or on the trailing characters that follow the declared boundary. Attackers exploit this by inflating the boundary suffix, forcing the server to iterate over each additional character during parsing.

The result is unbounded CPU and memory consumption per request. A single crafted request can monopolize a worker process, and a small number of concurrent requests can saturate the service. Because authentication is not required, any network-reachable instance is exposed.

Root Cause

The root cause is missing input validation on multipart boundary length and structure, aligning with [CWE-770]. The parser trusts attacker-controlled data and lacks throttling on the per-request processing cost. No upper limit is enforced on boundary size, and the parsing loop does not exit when the input grows beyond reasonable multipart specification limits.

Attack Vector

The attack vector is network-based and requires no privileges or user interaction. An attacker sends an HTTP POST request to the file upload endpoint with a Content-Type: multipart/form-data; boundary=... header whose boundary value has been extended with a large sequence of trailing characters. The server enters an expensive parsing routine that consumes CPU cycles until resources are exhausted. Repeated or concurrent requests amplify the impact into a full denial-of-service condition.

The vulnerability is described in prose only, as no verified proof-of-concept code is published. Refer to the Huntr Bounty Listing for additional technical context.

Detection Methods for CVE-2024-9229

Indicators of Compromise

  • HTTP POST requests to Quivr upload endpoints with abnormally long Content-Type header values or oversized multipart boundary strings
  • Sustained high CPU utilization on Quivr application workers correlated with inbound upload traffic
  • Worker process timeouts, request queue saturation, or 5xx errors from the upload service under low request volume
  • Repeated requests from a single source containing malformed multipart boundaries

Detection Strategies

  • Inspect ingress traffic for Content-Type headers exceeding reasonable length thresholds, typically a few hundred bytes
  • Alert on Quivr worker CPU saturation when concurrent request counts remain low
  • Correlate application error logs with reverse proxy access logs to identify malformed multipart requests
  • Baseline normal upload request sizes and flag statistical outliers in header length

Monitoring Recommendations

  • Enable structured logging of HTTP request headers and response times on the reverse proxy fronting Quivr
  • Forward web server and application telemetry to a centralized analytics platform for correlation across sessions
  • Track per-endpoint latency and error rates for the file upload route to detect degradation early
  • Set thresholds and alerts on abnormal ratios of CPU time consumed per upload request

How to Mitigate CVE-2024-9229

Immediate Actions Required

  • Upgrade Quivr to a release later than 0.0.298 that includes the fix for multipart boundary handling
  • Place the Quivr upload endpoint behind an authenticated gateway or restrict it to trusted networks until patched
  • Deploy a Web Application Firewall (WAF) rule that rejects requests where the Content-Type header exceeds a defined maximum length
  • Configure per-request timeouts and memory limits on application workers to bound the impact of expensive parsing

Patch Information

Refer to the Huntr Bounty Listing for remediation guidance and upstream fix references. Users should track the stangirard/quivr repository for releases addressing the multipart parser and validate that the deployed version incorporates the fix.

Workarounds

  • Terminate TLS at a reverse proxy such as Nginx or Envoy and enforce large_client_header_buffers or equivalent limits to drop oversized headers before they reach Quivr
  • Rate-limit unauthenticated requests to the upload endpoint using proxy-level controls
  • Restrict access to the upload endpoint through network ACLs, VPN, or authentication middleware until the patched version is deployed
bash
# Nginx configuration example: constrain header size and rate-limit uploads
http {
    large_client_header_buffers 4 8k;
    client_header_buffer_size 1k;
    client_max_body_size 25m;

    limit_req_zone $binary_remote_addr zone=quivr_upload:10m rate=5r/m;

    server {
        location /upload {
            limit_req zone=quivr_upload burst=5 nodelay;
            proxy_pass http://quivr_backend;
            proxy_read_timeout 15s;
        }
    }
}

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.