CVE-2024-12910: llama-index: DoS via infinite recursion in web reader

GHSA-jvpf-xf32-2w4q MEDIUM PoC AVAILABLE CISA: TRACK*
Published March 20, 2025
CISO Take

LLM applications using llama-index's KnowledgeBaseWebReader to ingest web content are vulnerable to denial of service if an attacker can influence the URL passed to the reader. Patch to llama-index 0.12.9 immediately and audit any RAG pipelines that accept user-supplied or externally-sourced URLs for knowledge base ingestion. Exploitation requires high attack complexity (controlling the URL variable), so prioritize systems where that input path is user-facing or API-exposed.

What is the risk?

Risk is moderate in typical deployments but elevated in multi-tenant RAG systems or applications that dynamically ingest URLs from user input. CVSS 5.9 Medium (AC:H) reflects that exploitation requires controlling the URL variable — a realistic condition in agent pipelines and knowledge base builders. EPSS 0.00271 indicates low current exploitation probability, but the simplicity of the trigger (root URL loop) makes it a low-effort attack once the input path is identified. Not in CISA KEV. Primary business impact is application availability, not data exfiltration.

What systems are affected?

Package Ecosystem Vulnerable Range Patched
LlamaIndex pip < 0.12.9 0.12.9
50.2K 238 dependents Pushed 3d ago 87% patched ~50d to patch Full package profile →

Do you use LlamaIndex? You're affected.

How severe is it?

CVSS 3.1
5.9 / 10
EPSS
0.6%
chance of exploitation in 30 days
Higher than 46% of all CVEs
Exploitation Status
Exploit Available
Exploitation: MEDIUM
Sophistication
Moderate
Exploitation Confidence
medium
CISA SSVC: Public PoC
Public PoC indexed (trickest/cve)
Composite signal derived from CISA KEV, VulnCheck KEV, CISA SSVC, EPSS, Metasploit, Exploit-DB, trickest/cve, Nuclei templates, and inthewild.io exploitation reports.

What is the attack surface?

AV AC PR UI S C I A
AV Network
AC High
PR None
UI None
S Unchanged
C None
I None
A High

What should I do?

6 steps
  1. Patch: upgrade llama-index to >= 0.12.9 immediately.

  2. Short-term workaround if patching is delayed: validate and sanitize URLs before passing to KnowledgeBaseWebReader — reject or normalize root-level URLs (e.g., reject URLs where path is '/' or empty).

  3. Apply recursion depth limits or timeouts at the crawler/reader invocation layer as defense-in-depth.

  4. Audit all code paths that pass external or user-supplied URLs to KnowledgeBaseWebReader.

  5. Detection: monitor for runaway CPU/memory usage in LLM pipeline workers; stack overflow exceptions or OOM kills in Python processes are indicators.

  6. In containerized environments, enforce memory and CPU limits to contain blast radius.

What does CISA's SSVC say?

Decision Track*
Exploitation poc
Automatable No
Technical Impact partial

Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.

How is it classified?

Which compliance frameworks are affected?

This CVE is relevant to:

EU AI Act
Article 15 - Accuracy, robustness and cybersecurity
ISO 42001
A.6.2.5 - AI system lifecycle — acquisition and supply chain A.9.3 - AI system availability and resilience
NIST AI RMF
MANAGE-2.2 - Mechanisms to sustain effectiveness of risk treatments
OWASP LLM Top 10
LLM04 - Model Denial of Service LLM05 - Supply Chain Vulnerabilities

Frequently Asked Questions

What is CVE-2024-12910?

LLM applications using llama-index's KnowledgeBaseWebReader to ingest web content are vulnerable to denial of service if an attacker can influence the URL passed to the reader. Patch to llama-index 0.12.9 immediately and audit any RAG pipelines that accept user-supplied or externally-sourced URLs for knowledge base ingestion. Exploitation requires high attack complexity (controlling the URL variable), so prioritize systems where that input path is user-facing or API-exposed.

Is CVE-2024-12910 actively exploited?

Proof-of-concept exploit code is publicly available for CVE-2024-12910, increasing the risk of exploitation.

How to fix CVE-2024-12910?

1. Patch: upgrade llama-index to >= 0.12.9 immediately. 2. Short-term workaround if patching is delayed: validate and sanitize URLs before passing to KnowledgeBaseWebReader — reject or normalize root-level URLs (e.g., reject URLs where path is '/' or empty). 3. Apply recursion depth limits or timeouts at the crawler/reader invocation layer as defense-in-depth. 4. Audit all code paths that pass external or user-supplied URLs to KnowledgeBaseWebReader. 5. Detection: monitor for runaway CPU/memory usage in LLM pipeline workers; stack overflow exceptions or OOM kills in Python processes are indicators. 6. In containerized environments, enforce memory and CPU limits to contain blast radius.

What systems are affected by CVE-2024-12910?

This vulnerability affects the following AI/ML architecture patterns: RAG pipelines, agent frameworks, knowledge base ingestion workflows, document loaders.

What is the CVSS score for CVE-2024-12910?

CVE-2024-12910 has a CVSS v3.1 base score of 5.9 (MEDIUM). The EPSS exploitation probability is 0.64%.

What is the AI security impact?

Affected AI Architectures

RAG pipelinesagent frameworksknowledge base ingestion workflowsdocument loaders

MITRE ATLAS Techniques

AML.T0010.001 AI Software
AML.T0029 Denial of AI Service
AML.T0034 Cost Harvesting
AML.T0049 Exploit Public-Facing Application

Compliance Controls Affected

EU AI Act: Article 15
ISO 42001: A.6.2.5, A.9.3
NIST AI RMF: MANAGE-2.2
OWASP LLM Top 10: LLM04, LLM05

What are the technical details?

Original Advisory

A vulnerability in the `KnowledgeBaseWebReader` class of the run-llama/llama_index repository, version latest, allows an attacker to cause a Denial of Service (DoS) by controlling a URL variable to contain the root URL. This leads to infinite recursive calls to the `get_article_urls` method, exhausting system resources and potentially crashing the application.

Exploitation Scenario

An adversary targeting a RAG-powered chatbot that allows users to specify a knowledge base URL submits the root domain (e.g., 'https://example.com/') as input. The application passes this URL to KnowledgeBaseWebReader, which enters an infinite recursive loop in get_article_urls attempting to enumerate all links. The worker process consumes all available memory and CPU until it crashes or is OOM-killed. In a multi-tenant SaaS environment, this takes down the knowledge ingestion service for all users. In an agentic pipeline where an LLM autonomously invokes the reader tool, prompt injection could be used to trigger the same condition indirectly by steering the agent to call the reader with a root URL.

Weaknesses (CWE)

CWE-400 — Uncontrolled Resource Consumption: The product does not properly control the allocation and maintenance of a limited resource.

  • [Architecture and Design] Design throttling mechanisms into the system architecture. The best protection is to limit the amount of resources that an unauthorized user can cause to be expended. A strong authentication and access control model will help prevent such attacks from occurring in the first place. The login application should be protected against DoS attacks as much as possible. Limiting the database access, perhaps by caching result sets, can help minimize the resources expended. To further limit the potential for a DoS attack, consider tracking the rate of requests received from users and blocking requests that exceed a defined rate threshold.
  • [Architecture and Design] Mitigation of resource exhaustion attacks requires that the target system either: The first of these solutions is an issue in itself though, since it may allow attackers to prevent the use of the system by a particular valid user. If the attacker impersonates the valid user, they may be able to prevent the user from accessing the server in question. The second solution is simply difficult to effectively institute -- and even when properly done, it does not provide a full solution. It simply makes the attack require more resources on the part of the attacker. recognizes the attack and denies that user further access for a given amount of time, or uniformly throttles all requests in order to make it more difficult to consume resources more quickly than they can again be freed.

Source: MITRE CWE corpus.

CVSS Vector

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H

Timeline

Published
March 20, 2025
Last Modified
October 15, 2025
First Seen
March 24, 2026

Related Vulnerabilities