CVE-2026-57126: PraisonAI: SpiderTools SSRF bypass via DNS resolution
HIGHPraisonAI's web-scraping tool, SpiderTools, is supposed to enforce an SSRF policy but only checks the literal hostname string and never resolves DNS before connecting for scrape_page, crawl, extract_links, extract_text, or URL-mention fetches — so an attacker who controls a hostname resolving to loopback, private, link-local, or cloud-metadata addresses (e.g. 169.254.169.254) bypasses the filter outright, with no DNS-rebinding race required. This is a CVSS 8.5 (AV:N/AC:L/PR:L/UI:N/S:C/C:H) issue affecting any agent workflow that lets the crawler fetch attacker-influenced or attacker-supplied URLs, which is common in multi-agent research and browsing pipelines; there is no EPSS data, no known public exploit or scanner template, and it is not in CISA KEV, but the scope-changed vector means a successful hit can leak internal HTTP responses — including cloud instance-metadata credentials — back through the agent's output. Exploitation requires only low privileges and no user interaction, and downstream-dependent counts on `praisonaiagents` are currently unverified, so treat exposure as broad until confirmed. Patch to praisonaiagents 1.6.58 immediately, and in the interim add an egress control at the network layer (block RFC1918, loopback, link-local, and the cloud metadata IP) in front of any host running PraisonAI agents, since the application-layer check alone cannot be trusted. Monitor outbound requests from PraisonAI hosts to internal IP ranges and metadata endpoints as a detection signal for exploitation attempts.
What is the risk?
High risk from an exploitability standpoint: attack complexity is low, no user interaction is required, and only low privileges (ability to supply/influence a URL processed by the agent) are needed. The confidentiality impact is high and the vulnerability has a changed scope, meaning a successful exploit can expose data beyond the vulnerable component itself (internal services, cloud metadata). There is no EPSS score, no CISA KEV listing, and no public exploit or Nuclei template, so there is no evidence of active exploitation today — but the trivial nature of the bypass (a single DNS record, no rebinding race) means weaponization requires minimal attacker effort once a vulnerable deployment is identified. Any PraisonAI deployment that lets agent tools fetch URLs derived from untrusted or semi-trusted input (user tasks, ingested documents, indirect prompt content) should be treated as exposed until patched.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| PraisonAI Agents | pip | — | No patch |
Do you use PraisonAI Agents? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step-
Upgrade to praisonaiagents 1.6.58 or later immediately, where DNS resolution is checked prior to connecting. Where immediate patching isn't possible, add network-layer SSRF protections: block outbound traffic from PraisonAI hosts to RFC1918 ranges, loopback, link-local addresses, and 169.254.169.254 (cloud metadata), ideally via an egress proxy that resolves and filters by destination IP rather than relying on hostname string checks. On cloud instances, enforce IMDSv2 with a hop limit of 1 to blunt metadata-theft attempts even if SSRF succeeds. Restrict which URLs SpiderTools is allowed to fetch to an allowlist where feasible, and add logging/alerting on crawler requests that resolve to internal or metadata IP ranges as a detection control.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-57126?
PraisonAI's web-scraping tool, SpiderTools, is supposed to enforce an SSRF policy but only checks the literal hostname string and never resolves DNS before connecting for scrape_page, crawl, extract_links, extract_text, or URL-mention fetches — so an attacker who controls a hostname resolving to loopback, private, link-local, or cloud-metadata addresses (e.g. 169.254.169.254) bypasses the filter outright, with no DNS-rebinding race required. This is a CVSS 8.5 (AV:N/AC:L/PR:L/UI:N/S:C/C:H) issue affecting any agent workflow that lets the crawler fetch attacker-influenced or attacker-supplied URLs, which is common in multi-agent research and browsing pipelines; there is no EPSS data, no known public exploit or scanner template, and it is not in CISA KEV, but the scope-changed vector means a successful hit can leak internal HTTP responses — including cloud instance-metadata credentials — back through the agent's output. Exploitation requires only low privileges and no user interaction, and downstream-dependent counts on `praisonaiagents` are currently unverified, so treat exposure as broad until confirmed. Patch to praisonaiagents 1.6.58 immediately, and in the interim add an egress control at the network layer (block RFC1918, loopback, link-local, and the cloud metadata IP) in front of any host running PraisonAI agents, since the application-layer check alone cannot be trusted. Monitor outbound requests from PraisonAI hosts to internal IP ranges and metadata endpoints as a detection signal for exploitation attempts.
Is CVE-2026-57126 actively exploited?
No confirmed active exploitation of CVE-2026-57126 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-57126?
Upgrade to praisonaiagents 1.6.58 or later immediately, where DNS resolution is checked prior to connecting. Where immediate patching isn't possible, add network-layer SSRF protections: block outbound traffic from PraisonAI hosts to RFC1918 ranges, loopback, link-local addresses, and 169.254.169.254 (cloud metadata), ideally via an egress proxy that resolves and filters by destination IP rather than relying on hostname string checks. On cloud instances, enforce IMDSv2 with a hop limit of 1 to blunt metadata-theft attempts even if SSRF succeeds. Restrict which URLs SpiderTools is allowed to fetch to an allowlist where feasible, and add logging/alerting on crawler requests that resolve to internal or metadata IP ranges as a detection control.
What systems are affected by CVE-2026-57126?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, autonomous web crawling agents, RAG pipelines, cloud-hosted agent deployments.
What is the CVSS score for CVE-2026-57126?
CVE-2026-57126 has a CVSS v3.1 base score of 8.5 (HIGH). The EPSS exploitation probability is 0.38%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0053 AI Agent Tool Invocation AML.T0085.001 AI Agent Tools Compliance Controls Affected
What are the technical details?
Original Advisory
PraisonAI is a multi-agent teams system. Prior to praisonaiagents 1.6.58, SpiderTools._validate_url calls _host_is_blocked, which checks literal host encodings but does not resolve DNS names before scrape_page, crawl, extract_links, extract_text, or URL-mention fetches connect. An attacker-controlled hostname resolving to a loopback, private, link-local, or cloud-metadata address therefore bypasses the SSRF policy without a rebinding race and can expose internal responses to the agent. This issue is fixed in praisonaiagents 1.6.58.
Exploitation Scenario
An attacker registers a domain (e.g. evil-research.example) with a DNS A record pointing to 169.254.169.254 or an internal IP like 10.0.0.5. They then get this URL in front of the PraisonAI agent — for example by embedding it in a task description, a document the agent is asked to summarize, or content the agent is instructed to crawl as part of a research task (a classic indirect-injection delivery vector). SpiderTools._validate_url inspects only the literal hostname string 'evil-research.example', finds no match against its blocklist of literal internal hosts, and allows the request. When the HTTP client actually connects, DNS resolves the hostname to the internal or metadata address, and the crawler fetches it directly — no race condition or timing attack needed. The fetched response (e.g., temporary cloud credentials from the metadata service, or contents of an internal admin endpoint) flows back into the agent's context and is surfaced in its output, giving the attacker a straightforward internal reconnaissance and data-exfiltration primitive.
Weaknesses (CWE)
CWE-918 — Server-Side Request Forgery (SSRF): The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N References
Timeline
Related Vulnerabilities
CVE-2026-34938 10.0 praisonaiagents: sandbox bypass enables full host RCE
Same package: praisonaiagents CVE-2026-39888 10.0 praisonaiagents: sandbox escape enables host RCE
Same package: praisonaiagents CVE-2026-47392 9.9 praisonaiagents: RCE via Python sandbox bypass
Same package: praisonaiagents GHSA-vc46-vw85-3wvm 9.8 PraisonAI: RCE via malicious workflow YAML execution
Same package: praisonaiagents CVE-2026-47391 9.8 PraisonAI: Unauth RCE via A2A eval injection
Same package: praisonaiagents