highCVSS 7.5Vulnerability

CVE-2026-55525

### Summary `web_crawl` (an exported, model-callable tool) validates only the INITIAL URL's resolved IP against a private/loopback blocklist, then fetches with `httpx.Client(follow_redirects=True)` and never re-validates redirect targets. An attacker who controls the agent's crawl target (a malicious task, or prompt injection inside any page the agent already crawls) supplies a public URL that HTTP 302-redirects to an internal address. httpx follows the redirect, fetches the internal resource (cloud metadata `169.254.169.254`, localhost services, internal APIs), and returns its body into the agent context. This bypasses the SSRF protection added to fix the earlier web_crawl SSRF reports, so it is an incomplete fix for that class. httpx is the default crawl provider on a stock `pip install praisonaiagents`, so no provider configuration is required. ### Details 1. The agent is asked (or prompt-injected) to crawl `https://attacker.example/r`, which the source accepts because `attacker.example` resolves to a public IP. 2. The attacker server responds 302 Location: `http://169.254.169.254/latest/meta-data/iam/security-credentials/<role>`. 3. `_crawl_with_httpx` follows the redirect with `follow_redirects=True`, fetches the IAM credential document, and `web_crawl` returns it in the result content field, where it enters the agent context and any downstream tool, log, or model response. The same technique reaches `http://127.0.0.1:<port>/` internal services and other link-local and RFC1918 hosts **Source (validates only the initial hostname)** ```python # src/praisonai-agents/praisonaiagents/tools/web_crawl_tools.py:231 ip_str = socket.gethostbyname(hostname) ip = ipaddress.ip_address(ip_str) if ip.is_loopback or ip.is_private or ip.is_link_local or ip.is_multicast or ip.is_unspecified: logger.warning(f"Rejected SSRF or private IP attempt: {u}") continue ``` **Sink (follows redirects with no re-validation)** ```python # src/praisonai-agents/praisonaiagen

Properties

ghsa_id
GHSA-5r34-2g38-6569
summary
praisonaiagents web_crawl vulnerable to SSRF via redirect-following
severity
high
cvss_score
7.5
cve_id
CVE-2026-55525
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
is_ghsa_only
false
ghsa_published
2026-08-25T14:05:38Z
source_url
https://github.com/advisories/GHSA-5r34-2g38-6569
ghsa_updated
2026-08-25T14:05:38Z

Related Entities (4)

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]pip/praisonaiagents

AFFECTS (1)

[Software]pip/praisonaiagents

HAS_WEAKNESS (1)

[Weakness]Server-Side Request Forgery (SSRF)

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-55525 (CVSS 7.5) — Ninja Signal Threat Intelligence | Ninja Signal