Description
PraisonAI is a multi-agent teams system. In versions prior to 1.6.58, the web_crawl tool performs its SSRF check only on the initially supplied URL, allowing the protection to be bypassed so the tool connects to attacker-chosen internal destinations. The check resolves the hostname once with socket.gethostbyname and rejects private/loopback/link-local results, but then passes the URL to a fetcher using httpx.Client(follow_redirects=True) (or urllib.request.urlopen when httpx is absent, which also follows redirects) that re-resolves the hostname at connect time with no further validation. This validate-here/fetch-there gap is exploitable through both HTTP redirects and DNS rebinding. If an attacker can influence URLs passed to web_crawl(), directly or through an agent/tool workflow, they can cause the PraisonAI host to fetch loopback, private-network, or cloud metadata endpoints reachable from that host, with the response body returned in the web_crawl() result. This issue has been fixed in version 1.6.58.
Published: 2026-08-05
Score: 7.5 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

PraisonAI’s web_crawl utility validates the supplied URL’s hostname only once, just before the request is made. The validation blocks private, loopback, and link‑local addresses, but after the check the URL is handed to an HTTP client that follows redirects and re‑resolves the hostname at connect time without any further filtering, creating a validate‑here/fetch‑there gap—an instance of CWE‑367. The flaw allows an attacker to supply a URL that redirects to or DNS‑binds to an internal or cloud‑metadata endpoint, which the PraisonAI host then requests and returns in the web_crawl result, effectively disclosing internal network data. This is a classic example of CWE‑918 (Server‑Side Request Forgery).

Affected Systems

The vulnerability affects the PraisonAI product from MervinPraison. Any release prior to version 1.6.58 is impacted; the issue resides in the web_crawl component. Upgrades to 1.6.58 or higher include the fix.

Risk and Exploitability

With a CVSS score of 7.5 the flaw is classified as high severity. EPSS data is not available, and the vulnerability is not listed in CISA’s KEV catalog, so no large‑scale exploitation is known. However, exploitation requires only an ability to influence URLs passed to web_crawl(), which may be exercised through direct API calls or via internal tool workflows. The redirect and DNS rebinding paths allow an attacker to reach loopback, private, link‑local, or cloud‑metadata services from the host, providing the attacker with sensitive internal information.

Generated by OpenCVE AI on August 5, 2026 at 22:06 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade PraisonAI to version 1.6.58 or later.
  • Configure the hosting environment or network firewall to block outbound connections to loopback, private, link‑local and cloud‑metadata addresses, or restrict PraisonAI’s reach to a whitelist of trusted domains.
  • Implement monitoring or logging on web_crawl outputs to detect anomalous internal IP addresses domain references and trigger an alert if suspicious patterns are observed.

Generated by OpenCVE AI on August 5, 2026 at 22:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 05 Aug 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Mervinpraison
Mervinpraison praisonai
Vendors & Products Mervinpraison
Mervinpraison praisonai

Wed, 05 Aug 2026 20:15:00 +0000

Type Values Removed Values Added
Description PraisonAI is a multi-agent teams system. In versions prior to 1.6.58, the web_crawl tool performs its SSRF check only on the initially supplied URL, allowing the protection to be bypassed so the tool connects to attacker-chosen internal destinations. The check resolves the hostname once with socket.gethostbyname and rejects private/loopback/link-local results, but then passes the URL to a fetcher using httpx.Client(follow_redirects=True) (or urllib.request.urlopen when httpx is absent, which also follows redirects) that re-resolves the hostname at connect time with no further validation. This validate-here/fetch-there gap is exploitable through both HTTP redirects and DNS rebinding. If an attacker can influence URLs passed to web_crawl(), directly or through an agent/tool workflow, they can cause the PraisonAI host to fetch loopback, private-network, or cloud metadata endpoints reachable from that host, with the response body returned in the web_crawl() result. This issue has been fixed in version 1.6.58.
Title PraisonAI: SSRF in web_crawl tool via redirect-following and DNS rebinding (validate-then-fetch gap)
Weaknesses CWE-367
CWE-918
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:L/A:N'}


Subscriptions

Mervinpraison Praisonai
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-05T19:58:46.038Z

Reserved: 2026-06-16T22:44:22.284Z

Link: CVE-2026-55524

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-05T22:15:04Z

Weaknesses
  • CWE-367

    Time-of-check Time-of-use (TOCTOU) Race Condition

  • CWE-918

    Server-Side Request Forgery (SSRF)