CVE-2026-55537

PraisonAI: Webhook SSRF via DNS fail-open in `JobSubmitRequest.validate_webhook_url()` — bypass of CVE-2026-40114

Published Aug 25, 2026 CVSS 3.1 · 7.1 High EPSS < 1% KEV · Not listed
Description
PraisonAI is a multi-agent teams system. Prior to praisonai 4.6.58, JobSubmitRequest.validate_webhook_url() accepts webhook_url when resolution raises socket.gaierror because the exception path uses except socket.gaierror: pass. JobExecutor._send_webhook() later performs a fresh lookup, allowing DNS changes to direct the request to an internal service. This issue is fixed in version 4.6.58.

Analysis

AI-generated

Technical impact

This SSRF vulnerability arises from a DNS fail‑open condition in PraisonAI's webhook validation. When the system cannot resolve the specified webhook URL, the code swallows the error and later performs a new lookup during the webhook dispatch, allowing the attacker to change the DNS entry to point to an internal service. The attack lets an attacker force PraisonAI to issue HTTP requests to arbitrary internal resources, potentially exposing sensitive data or enabling further attacks. The weakness is a Server‑Side Request Forgery (CWE‑918) compounded by failed DNS handling (CWE‑367) and a partial trust boundary (CWE‑705).

Affected Systems

The vulnerability affects all installations of MervinPraison PraisonAI before version 4.6.58. All releases up to, but not including, 4.6.58 are susceptible. The affected component is the JobSubmitRequest.validate_webhook_url() routine in the PraisonAI codebase. No other products or vendors are affected.

Risk and Exploitability

The CVSS score of 7.1 indicates high impact. The EPSS score is not available, but the lack of KEV listing suggests no publicly known exploitation yet. The likely attack vector is the submission of a job with a crafted webhook_url that triggers the DNS lookup failure. Attackers could exploit this to reach internal networks, exfiltrate data, or pivot into other systems. Patching to 4.6.58 eliminates the vulnerable control flow and removes the possibility of DNS fail‑open exploitation.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade PraisonAI to version 4.6.58 or later where the DNS error handling is corrected.
  • After upgrading, verify that JobSubmitRequest.validate_webhook_url() rejects invalid URLs and logs the error instead of silently passing.
  • As an additional protective measure, configure firewall or network ACLs to limit outbound connections from PraisonAI to only trusted webhook endpoints, reducing the impact if a future flaw arises.

Generated by OpenCVE AI on August 25, 2026 at 16:41 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-rg5q-pp8p-f7jm PraisonAI: Webhook SSRF via DNS fail-open in `JobSubmitRequest.validate_webhook_url()` — bypass of CVE-2026-40114
History
Type Values Removed Values Added
First Time appeared Mervinpraison
Mervinpraison praisonai
Vendors & Products Mervinpraison
Mervinpraison praisonai
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description PraisonAI is a multi-agent teams system. Prior to praisonai 4.6.58, JobSubmitRequest.validate_webhook_url() accepts webhook_url when resolution raises socket.gaierror because the exception path uses except socket.gaierror: pass. JobExecutor._send_webhook() later performs a fresh lookup, allowing DNS changes to direct the request to an internal service. This issue is fixed in version 4.6.58.
Title PraisonAI: Webhook SSRF via DNS fail-open in `JobSubmitRequest.validate_webhook_url()` — bypass of CVE-2026-40114
Weaknesses CWE-367
CWE-705
CWE-918
References
Metrics cvssV3_1

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

Weaknesses
  • CWE-367

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

  • CWE-705

    Incorrect Control Flow Scoping

  • CWE-918

    Server-Side Request Forgery (SSRF)

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Aug 25, 2026, 4:18 PM
Reserved
Jun 16, 2026, 11:01 PM
Status
Deferred
Published
Aug 25, 2026, 3:16 PM
Modified
Sep 9, 2026, 9:07 PM