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)
VULNERABLE_TO (1)
AFFECTS (1)
HAS_WEAKNESS (1)
Explore deeper with Ninja Signal's threat intelligence graph