CVE-2026-55523: PraisonAI web_crawl SSRF protection bypass via unchecked redirects

CVE-2026-55523 · Severity: high · CVSS 4 · Published 2026-08-25

PraisonAI's web_crawl function validates initial URLs to block access to private and loopback network endpoints, but fails to validate HTTP redirect destinations. An attacker can craft a public URL that redirects to private networks or cloud metadata services, allowing the tool to access sensitive internal resources. This could expose internal services, private network infrastructure, or cloud metadata credentials that should only be accessible locally.

Technologies: praisonaiagents (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-55523 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-55523 being exploited in the wild.
How severe is CVE-2026-55523?
High severity, with a CVSS score of 4, published 25 August 2026.
Which products and versions are affected?
praisonaiagents (PyPI) ECOSYSTEM:introduced=1.5.128,fixed=1.6.58.
Is there a fix for CVE-2026-55523?
Yes. praisonaiagents (PyPI): upgrade to 1.6.58 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-55523 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-55523?
Check whether you run praisonaiagents (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • praisonaiagents (PyPI): upgrade to 1.6.58 or later
    pip install "praisonaiagents>=1.6.58"

Technical details

The vulnerability is a Server-Side Request Forgery (SSRF) bypass in the web_crawl() function and its httpx fallback (_crawl_with_httpx()). The root cause is incomplete URL validation: while the initial URL is checked via socket.gethostbyname() to reject loopback/private/link-local addresses (unless ALLOW_LOCAL_CRAWL=true), the httpx.Client is configured with follow_redirects=True and performs no validation on intermediate or final redirect targets. An attacker can supply a public URL that passes initial validation but redirects via 302/3xx responses to loopback (127.0.0.1), private networks (10.x.x.x, 172.16-31.x.x, 192.168.x.x), or cloud metadata endpoints (169.254.169.254). The response body from the redirected endpoint is returned in the web_crawl() result. The fix requires either disabling redirect following or implementing per-redirect URL validation using socket.getaddrinfo() rather than a single gethostbyname() call. Patched in version 1.6.58; affected versions 1.5.128 through 1.6.56.

Affected products

  • MervinPraison PraisonAI >=1.5.128, <1.6.58

Identifiers

  • CVE-2026-55523
  • GHSA-8hjw-25cg-g52h
  • PYSEC-2026-3900

Timeline

  • 2026-06-13: disclosed
  • 2026-08-25: advisory
  • 2026-08-25: patched: Fixed in version 1.6.58

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.