{"cve":"CVE-2026-47390","nvd":{"published":"2026-07-21T16:17:11.760","modified":"2026-07-22T15:17:17.097","status":"Deferred","description":"PraisonAI is a multi-agent teams system. Prior to version 4.6.40 of PraisonAI, corresponding to version 1.6.40 of praisonaiagents, `spider_tools` URL validation can be bypassed using alternate loopback host encodings. The tool contains a URL validation function intended to block local or unsafe targets before fetching attacker-controlled URLs. However, the validation only blocks a small set of exact host strings such as `localhost` and `127.0.0.1`. It does not normalize hostnames, resolve DNS, parse numeric IPv4 variants, or validate the final resolved IP address before making the request. As a result, certain URLs may bypass the protection and still reach loopback services. After the weak validation passes, `scrape_page()` calls `requests.Session.get()` on the attacker-controlled URL. This allows an attacker who can influence URLs passed to `scrape_page`, `crawl`, or `extract_text` to induce SSRF requests against loopback-only services. This is a server-side request forgery protection bypass. PraisonAI version 4.6.40 and praisonaiagents version 1.6.40 contain a patch.","cvss_v4":null,"cvss_v3":{"version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","score":5.5},"cwes":["CWE-918"],"references":["https://github.com/MervinPraison/PraisonAI/commit/b0d8f777528f3253a0cfb0a3ef65455da6ae32f6","https://github.com/MervinPraison/PraisonAI/pull/1684","https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-5c6w-wwfq-7qqm","https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-5c6w-wwfq-7qqm"],"products":[],"source":"nvd","synced_at":"2026-10-19T22:45:53.305392138+00:00"},"epss":{"cve":"CVE-2026-47390","score":0.00175,"percentile":0.06929,"date":"2026-10-31"},"kev":null,"osv":[{"id":"GHSA-5c6w-wwfq-7qqm","url":"https://osv.dev/vulnerability/GHSA-5c6w-wwfq-7qqm","summary":"PraisonAI spider_tools SSRF protection bypass via alternate loopback host encodings","modified":"2026-07-13T16:43:28.597455246Z","packages":[{"ecosystem":"PyPI","name":"praisonaiagents","purl":"pkg:pypi/praisonaiagents","ranges":["<1.6.40"],"fixed":["1.6.40"]},{"ecosystem":"PyPI","name":"praisonai","purl":"pkg:pypi/praisonai","ranges":["<4.6.40"],"fixed":["4.6.40"]}]},{"id":"PYSEC-2026-2902","url":"https://osv.dev/vulnerability/PYSEC-2026-2902","summary":"PraisonAI spider_tools SSRF protection bypass via alternate loopback host encodings","modified":"2026-07-13T16:43:28.597455246Z","packages":[{"ecosystem":"PyPI","name":"praisonai","purl":"pkg:pypi/praisonai","ranges":["<4.6.40"],"fixed":["4.6.40"]}]},{"id":"PYSEC-2026-2941","url":"https://osv.dev/vulnerability/PYSEC-2026-2941","summary":"PraisonAI spider_tools SSRF protection bypass via alternate loopback host encodings","modified":"2026-07-13T16:43:28.597455246Z","packages":[{"ecosystem":"PyPI","name":"praisonaiagents","purl":"pkg:pypi/praisonaiagents","ranges":["<1.6.40"],"fixed":["1.6.40"]}]}],"attribution":["This product uses the NVD API but is not endorsed or certified by the NVD.","EPSS scores: FIRST Exploit Prediction Scoring System, https://www.first.org/epss","Known exploited vulnerabilities: CISA Known Exploited Vulnerabilities Catalog, https://www.cisa.gov/known-exploited-vulnerabilities-catalog","Package advisories: OSV (https://osv.dev), from the GitHub Advisory Database, PyPA, Go, RustSec and other ecosystem databases, under CC-BY 4.0 or CC0","CVE records: the CVE Program's CVE List (https://www.cve.org), under its terms of use (https://www.cve.org/Legal/TermsOfUse). CVE is a registered trademark of The MITRE Corporation; this product is not affiliated with the CVE Program."]}