{"id":"CVE-2026-57114","revision":null,"records":[{"revision":"e28fd16b228647b9ab8619cd150f7c94","observedAt":"2026-10-23T16:01:20.601+00:00","statement":{"source":"cve-program","id":"CVE-2026-57114","aliases":[],"title":"PraisonAI: Jobs webhook SSRF protection bypass via DNS rebinding","description":"PraisonAI is a multi-agent teams system. From version 4.5.126 to before version 4.6.59, PraisonAI's Async Jobs API validates webhook_url when a job request is parsed and again when the internal Job object is constructed. That validation blocks direct loopback/private targets, but it is not bound to the later network request. When a job completes, _send_webhook() passes the original hostname to httpx.AsyncClient.post() with no send-time validation, IP pinning, or guarded transport. An attacker-controlled hostname can therefore resolve to a public IP during Pydantic validation and later resolve to loopback/private/cloud-metadata infrastructure during webhook delivery. This bypasses the intended SSRF guard in current supported releases. This appears to be an incomplete fix / patch bypass for GHSA-8frj-8q3m-xhgm. This issue has been patched in version 4.6.59.","state":0,"publishedAt":"2026-10-23T12:04:29.966+00:00","modifiedAt":"2026-10-23T12:04:29.966+00:00","affected":[{"ecosystem":"Vendor product","name":"PraisonAI","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"MervinPraison\",\n                    \"product\": \"PraisonAI\",\n                    \"versions\": [\n                        {\n                            \"version\": \">= 4.5.126, < 4.6.59\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","score":7.2,"severity":"HIGH"}],"references":["https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-rjvw-7vvw-549v"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-57114","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-57114","identifiers":["CVE-2026-57114"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-10-27T19:48:20.2022313+00:00","complete":true,"records":1758,"lastAttemptAt":"2026-10-27T19:48:20.2022313+00:00","lastSuccessAt":"2026-10-27T19:48:20.3995122+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:20.3995159+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-187d2b72c94ceb8c4417f1032ec3109a3a3a7b730abadb561d8cdd2a96e04d27-7cd07bd34af12feff0c266ac6b6067983cd304c0b7a53edb5f19b42fc0b28494","complete":true,"records":415364,"lastAttemptAt":"2026-10-27T19:46:06.1518767+00:00","lastSuccessAt":"2026-10-27T19:46:06.0285436+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:46:06.1518767+00:00","snapshotPublishedAt":"2026-10-27T19:18:28+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-3c3fdf72295742c7a66e189e2b63cb9e","complete":false,"records":5734,"lastAttemptAt":"2026-10-27T20:00:28.3741297+00:00","lastSuccessAt":"2026-10-27T20:00:28.37+00:00","error":null,"lastVerifiedAt":"2026-10-27T20:00:28.37+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":1000,"expectedIdentifiers":13501,"failedIdentifiers":0},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-10-27T19:48:20.2022313+00:00","complete":true,"records":1093,"lastAttemptAt":"2026-10-27T19:48:20.2022313+00:00","lastSuccessAt":"2026-10-27T19:48:20.4010872+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:20.4010877+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-3bd7ce170fa9469593b2b05a4c145743","complete":true,"records":13438,"lastAttemptAt":"2026-10-27T19:48:21.6831828+00:00","lastSuccessAt":"2026-10-27T19:48:21.679+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:21.679+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13501,"expectedIdentifiers":13501,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-0a9352f15ff9b42ef0668815b17985da54b0862a5d24cb9a13f2a99c14c0f811","complete":true,"records":9785,"lastAttemptAt":"2026-10-27T19:48:20.0598535+00:00","lastSuccessAt":"2026-10-27T19:48:19.7606489+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:20.0598535+00:00","snapshotPublishedAt":"2026-10-27T19:18:07+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-bad5d31e7f6a5e3d338e11d8789069b63620a403f927730769688b42f768e4f6","complete":true,"records":1965,"lastAttemptAt":"2026-10-27T19:46:06.3074736+00:00","lastSuccessAt":"2026-10-26T16:35:43.1460623+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:46:06.3074736+00:00","snapshotPublishedAt":"2026-10-26T16:18:29+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-3a5b306d60fc44677a03a8afc99d87e6c5402770ef68d560f94a8c3ad3802b75","complete":true,"records":3001,"lastAttemptAt":"2026-10-27T19:48:20.1662846+00:00","lastSuccessAt":"2026-10-27T16:45:49.0050993+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:20.1662846+00:00","snapshotPublishedAt":"2026-10-27T16:33:43+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-fc1c62e1c2d70dda08a497ed7a59029d5d84def9eb7702ebf314b9dadea06e2f","complete":true,"records":230836,"lastAttemptAt":"2026-10-27T19:48:10.3426958+00:00","lastSuccessAt":"2026-10-27T19:48:08.9643671+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:10.3426958+00:00","snapshotPublishedAt":"2026-10-27T19:18:16+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}