Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low privileges to PraisonAI agent
-
DeliverySupply crafted nip.io loopback URL as fetch target
-
ExploitSSRF filter passes hostname without DNS resolution
-
ExecutionAgent issues HTTP request to internal loopback service
-
PersistInternal service response returned to attacker
-
ImpactExfiltrate credentials or sensitive internal data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication DNS-independent verification
|
| Exploitation Conditions | The attacker must have low-privileged access sufficient to supply a URL to a PraisonAI agent that invokes one of the affected LLM-callable tools: scrape_page, extract_links, crawl, or extract_text - all registered as default agent tools via tools/__init__.py lines 51-55. The target must be running praisonaiagents prior to version 1.6.58. No non-default configuration is required; the vulnerable code path is active by default whenever spider_tools are loaded. Exploitation is bounded to reading internal HTTP services reachable on loopback or private network addresses from the host running praisonaiagents - it does not inherently grant code execution. The integrity impact is limited to HTTP GET semantics unless internal services accept state-changing GET requests. |
| Impact | The CVSS 8.5 score is well-supported: the network attack vector (AV:N), low complexity (AC:L), and low-privilege requirement (PR:L) combine with a scope change (S:C) that elevates the effective impact beyond the praisonaiagents process to internal network services. The high confidentiality rating (C:H) is credible given that internal service responses - potentially including cloud instance metadata, internal API credentials, or microservice data - are returned directly to the attacker. No EPSS data was provided in the input, and this CVE is not listed in CISA KEV, so wide automated exploitation has not been confirmed; however, the GHSA advisory documents a live proof-of-concept requiring zero external infrastructure, which dramatically lowers the exploitation bar compared to a theoretical flaw. The PR:L metric accurately reflects that an attacker must have some access to instruct a PraisonAI agent; unauthenticated exploitation is not indicated by the CVSS vector. The integrity impact is correctly rated low (I:L) since HTTP GET semantics do not inherently mutate state, though internal services accepting state-changing GETs would extend that impact. Operators with sensitive services on loopback or RFC-1918 addresses should prioritize patching regardless of the absence of a KEV listing, given the trivial exploitation technique and confirmed proof-of-concept. |
| Exploit ScenarioDerived | An attacker with low-privileged access to a PraisonAI deployment - for example, a user who can supply prompts to an agent using the scrape_page or crawl tools - provides a URL such as http://127.0.0.1.nip.io:8080/admin/config. The SSRF filter in _host_is_blocked() treats '127.0.0.1.nip.io' as an ordinary hostname, fails to resolve it, and returns False, permitting the HTTP request to proceed to the local service; the GHSA advisory confirms this exact scenario with a live exploit requiring no external infrastructure. The agent returns the internal service response to the attacker, potentially exposing secrets, API keys, or cloud metadata credentials. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 25, 2026
SSRF protection bypass in PraisonAI's praisonaiagents library (all versions before 1.6.58) lets low-privileged users route agent web-fetching functions to internal HTTP services by supplying hostnames - such as 127.0.0.1.nip.io - that pass the static IP blocklist in spider_tools._host_is_blocked() because the function never performs DNS resolution before validation. The affected functions scrape_page, extract_links, crawl, and extract_text are registered as default LLM-callable agent tools, so any agent prompted to retrieve a user-supplied URL will trigger this path; a live proof-of-concept is documented in the GitHub Security Advisory (GHSA-x44h-65qv-cw74), confirming that publicly available exploit code exists. The CVSS scope change (S:C) and high confidentiality impact (C:H) reflect real ability to exfiltrate responses from internal services such as cloud metadata endpoints or localhost-bound APIs.
RemediationAI
Upgrade praisonaiagents to version 1.6.58 or later via pip install --upgrade praisonaiagents; the vendor-released patch is confirmed by GitHub release tag v4.6.58 and commit 2f9677abb2ea68eab864ee8b6a828fd0141612e1. If an immediate upgrade is not possible, the most effective compensating control is to restrict which URLs agents are permitted to fetch at the application policy layer before any request reaches spider_tools - for example, by enforcing an allowlist of approved URL prefixes in the caller code. Operators running PraisonAI in environments where internal services are accessible on loopback or RFC-1918 addresses (including cloud metadata endpoints at 169.254.169.254) should isolate the praisonaiagents process in a network namespace or container with no internal service routing until patched; this eliminates the reachable internal attack surface even if SSRF validation is bypassed. Blocking outbound DNS resolution to public wildcard DNS services (nip.io, sslip.io, xip.io) at the network perimeter adds defense-in-depth but should not substitute for patching, as any authoritative DNS record pointing to a private IP would achieve the same bypass.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in pypi, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability (CWE-350: Reliance on Reverse DNS Resolution for a Security-Critical Action) resides in praisonaiagents/tools/spider_tools.py in the _host_is_blocked() function, which checks URL hostnames against a hardcoded set of IP literals ('localhost', '0.0.0.0', '::1'), known cloud metadata aliases ('169.254.169.254', 'metadata.google.internal'), and TLD suffixes (.local, .internal). For non-literal hostnames, the function attempts ipaddress.ip_address() and socket.inet_aton() parsing - both of which only handle dotted-decimal strings, not DNS names - so any real hostname falls through to return False (not blocked). Public wildcard DNS services such as nip.io, sslip.io, and xip.io embed arbitrary IP addresses in DNS names (e.g., 127.0.0.1.nip.io resolves to 127.0.0.1), requiring no attacker-controlled infrastructure. CPE data identifies both cpe:2.3:a:mervinpraison:praisonai and cpe:2.3:a:mervinpraison:praisonaiagents as affected products. This is a bypass of a prior SSRF fix (GHSA-q9pw-vmhh-384g, commit 004dcfef) that addressed IP literal encoding tricks only; the correct pattern using socket.getaddrinfo with fail-closed behavior had already been applied to web_crawl_tools.py but was not ported to spider_tools.py until version 1.6.58.
Know when Praisonai gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N
Network-reachable via agent prompt; low privilege required to instruct the agent; scope change because internal host services are affected beyond the application boundary; high confidentiality as full internal responses are returned; low integrity since exploitation relies on HTTP GET semantics.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
PraisonAI is a multi-agent teams system. Prior to praisonaiagents 1.6.58, spider_tools._host_is_blocked() does not resolve ordinary hostnames before scrape_page fetches them. A hostname such as 127.0.0.1.nip.io passes validation and resolves to loopback, permitting internal HTTP access. The fix uses socket.getaddrinfo and fails closed on DNS errors. This issue is fixed in version 1.6.58.
Executive ViewAI
PraisonAI's praisonaiagents library (versions before 1.6.58) contains a vulnerability allowing low-privileged users to extract sensitive data from internal systems, including cloud credentials and API keys from metadata endpoints. Organizations deploying this library in production risk unauthorized access to internal infrastructure and sensitive credentials.
Apply vendor patch: praisonaiagents 1.6.58 or later
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
PraisonAI's TypeScript MCP server (npm package `praisonai`, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC trans
WebSocket origin-validation bypass in PraisonAI's Browser Server (praisonai/browser/server.py) before 4.6.58 lets an att
PraisonAI's `praisonai serve` subsystem (agents and unified modes) accepts an `--api-key` CLI flag that is parsed but ne
Unauthenticated remote agent invocation in PraisonAI versions 4.6.34 through 4.6.57 allows any network-reachable caller
Authentication fail-open in PraisonAI's Recipe HTTP server allows unauthenticated remote attackers to invoke recipe exec
Authentication bypass in PraisonAI's AgentServer component exposes all routes - /publish, /events, /info, /health - to u
Arbitrary Python code execution in PraisonAI's workflow include feature allows an attacker who controls a local recipe d
Server-side request forgery in PraisonAI's web_crawl() function (versions 1.5.128-1.6.57) allows an attacker who can inf
Cross-site request forgery against the PraisonAI MCP HTTP-stream transport allows unauthenticated remote attackers to ex
Remote unauthenticated access to PraisonAI's legacy Flask API server allows attackers to execute configured agent workfl
Path traversal in praisonaiagents prior to 1.6.58 allows a low-privileged caller to write arbitrary JSON files to any pr
Server-Side Request Forgery in PraisonAI before version 4.6.58 allows unauthenticated remote attackers to force the appl
EUVD-2026-65499
GHSA-x44h-65qv-cw74
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB