<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 29 Sep 2026 03:53:33 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-47390</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-47390</link>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-47390</guid>
    </item>
    <item>
      <title>GHSA-5c6w-wwfq-7qqm — PraisonAI spider_tools SSRF protection bypass via alternate loopback host encodings</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-5c6w-wwfq-7qqm</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: praisonaiagents, PyPI: PraisonAI&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;PraisonAI&amp;#39;s `spider_tools` URL validation can be bypassed using alternate loopback host encodings.&lt;/p&gt;
&lt;p&gt;The affected component is:&lt;/p&gt;
&lt;p&gt;```text
praisonaiagents/tools/spider_tools.py
````&lt;/p&gt;
&lt;p&gt;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`.&lt;/p&gt;
&lt;p&gt;It does not normalize hostnames, resolve DNS, parse numeric IPv4 variants, or validate the final resolved IP address before making the request.&lt;/p&gt;
&lt;p&gt;As a result, URLs such as the following bypass the protection and still reach loopback services:&lt;/p&gt;
&lt;p&gt;```text
http://localhost.:8765/
http://127.1:8765/
http://0177.0.0.1:8765/
http://0x7f000001:8765/
http://2130706433:8765/
```&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This is a server-side request forgery protection bypass.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The affected code is in:&lt;/p&gt;
&lt;p&gt;```text
praisonaiagents/tools/spider_tools.py
```&lt;/p&gt;
&lt;p&gt;The vulnerable flow is:&lt;/p&gt;
&lt;p&gt;```text
attacker-controlled URL
  -&amp;gt; spider_tools._validate_url(...)
  -&amp;gt; weak exact-host blocklist check
  -&amp;gt; validation passes for alternate loopback encodings
  -&amp;gt; scrape_page(...)
  -&amp;gt; requests.Session.get(attacker_url)
  -&amp;gt; loopback service is reached…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: praisonaiagents, PyPI: PraisonAI&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;PraisonAI&amp;#39;s `spider_tools` URL validation can be bypassed using alternate loopback host encodings.&lt;/p&gt;
&lt;p&gt;The affected component is:&lt;/p&gt;
&lt;p&gt;```text
praisonaiagents/tools/spider_tools.py
````&lt;/p&gt;
&lt;p&gt;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`.&lt;/p&gt;
&lt;p&gt;It does not normalize hostnames, resolve DNS, parse numeric IPv4 variants, or validate the final resolved IP address before making the request.&lt;/p&gt;
&lt;p&gt;As a result, URLs such as the following bypass the protection and still reach loopback services:&lt;/p&gt;
&lt;p&gt;```text
http://localhost.:8765/
http://127.1:8765/
http://0177.0.0.1:8765/
http://0x7f000001:8765/
http://2130706433:8765/
```&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This is a server-side request forgery protection bypass.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The affected code is in:&lt;/p&gt;
&lt;p&gt;```text
praisonaiagents/tools/spider_tools.py
```&lt;/p&gt;
&lt;p&gt;The vulnerable flow is:&lt;/p&gt;
&lt;p&gt;```text
attacker-controlled URL
  -&amp;gt; spider_tools._validate_url(...)
  -&amp;gt; weak exact-host blocklist check
  -&amp;gt; validation passes for alternate loopback encodings
  -&amp;gt; scrape_page(...)
  -&amp;gt; requests.Session.get(attacker_url)
  -&amp;gt; loopback service is reached…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-5c6w-wwfq-7qqm</guid>
    </item>
    <item>
      <title>PYSEC-2026-2902 — PraisonAI spider_tools SSRF protection bypass via alternate loopback host encodings</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2026-2902</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: praisonai&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;PraisonAI&amp;#39;s `spider_tools` URL validation can be bypassed using alternate loopback host encodings.&lt;/p&gt;
&lt;p&gt;The affected component is:&lt;/p&gt;
&lt;p&gt;```text
praisonaiagents/tools/spider_tools.py
````&lt;/p&gt;
&lt;p&gt;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`.&lt;/p&gt;
&lt;p&gt;It does not normalize hostnames, resolve DNS, parse numeric IPv4 variants, or validate the final resolved IP address before making the request.&lt;/p&gt;
&lt;p&gt;As a result, URLs such as the following bypass the protection and still reach loopback services:&lt;/p&gt;
&lt;p&gt;```text
http://localhost.:8765/
http://127.1:8765/
http://0177.0.0.1:8765/
http://0x7f000001:8765/
http://2130706433:8765/
```&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This is a server-side request forgery protection bypass.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The affected code is in:&lt;/p&gt;
&lt;p&gt;```text
praisonaiagents/tools/spider_tools.py
```&lt;/p&gt;
&lt;p&gt;The vulnerable flow is:&lt;/p&gt;
&lt;p&gt;```text
attacker-controlled URL
  -&amp;gt; spider_tools._validate_url(...)
  -&amp;gt; weak exact-host blocklist check
  -&amp;gt; validation passes for alternate loopback encodings
  -&amp;gt; scrape_page(...)
  -&amp;gt; requests.Session.get(attacker_url)
  -&amp;gt; loopback service is reached…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: praisonai&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;PraisonAI&amp;#39;s `spider_tools` URL validation can be bypassed using alternate loopback host encodings.&lt;/p&gt;
&lt;p&gt;The affected component is:&lt;/p&gt;
&lt;p&gt;```text
praisonaiagents/tools/spider_tools.py
````&lt;/p&gt;
&lt;p&gt;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`.&lt;/p&gt;
&lt;p&gt;It does not normalize hostnames, resolve DNS, parse numeric IPv4 variants, or validate the final resolved IP address before making the request.&lt;/p&gt;
&lt;p&gt;As a result, URLs such as the following bypass the protection and still reach loopback services:&lt;/p&gt;
&lt;p&gt;```text
http://localhost.:8765/
http://127.1:8765/
http://0177.0.0.1:8765/
http://0x7f000001:8765/
http://2130706433:8765/
```&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This is a server-side request forgery protection bypass.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The affected code is in:&lt;/p&gt;
&lt;p&gt;```text
praisonaiagents/tools/spider_tools.py
```&lt;/p&gt;
&lt;p&gt;The vulnerable flow is:&lt;/p&gt;
&lt;p&gt;```text
attacker-controlled URL
  -&amp;gt; spider_tools._validate_url(...)
  -&amp;gt; weak exact-host blocklist check
  -&amp;gt; validation passes for alternate loopback encodings
  -&amp;gt; scrape_page(...)
  -&amp;gt; requests.Session.get(attacker_url)
  -&amp;gt; loopback service is reached…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2026-2902</guid>
    </item>
  </channel>
</rss>
