<?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>Sat, 03 Oct 2026 12:14:21 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-68616 — WeasyPrint Vulnerable to Server-Side Request Forgery (SSRF) Protection Bypass via HTTP Redirect</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2025-68616</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Kozea WeasyPrint, Red Hat Ansible Automation Platform 2&lt;/p&gt;
&lt;p&gt;WeasyPrint helps web developers to create PDF documents. Prior to version 68.0, a server-side request forgery (SSRF) protection bypass exists in WeasyPrint&amp;#39;s `default_url_fetcher`. The vulnerability allows attackers to access internal network resources (such as `localhost` services or cloud metadata endpoints) even when a developer has implemented a custom `url_fetcher` to block such access. This occurs because the underlying `urllib` library follows HTTP redirects automatically without re-validating the new destination against the developer&amp;#39;s security policy. Version 68.0 contains a patch for the issue.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Kozea WeasyPrint, Red Hat Ansible Automation Platform 2&lt;/p&gt;
&lt;p&gt;WeasyPrint helps web developers to create PDF documents. Prior to version 68.0, a server-side request forgery (SSRF) protection bypass exists in WeasyPrint&amp;#39;s `default_url_fetcher`. The vulnerability allows attackers to access internal network resources (such as `localhost` services or cloud metadata endpoints) even when a developer has implemented a custom `url_fetcher` to block such access. This occurs because the underlying `urllib` library follows HTTP redirects automatically without re-validating the new destination against the developer&amp;#39;s security policy. Version 68.0 contains a patch for the issue.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2025-68616</guid>
    </item>
    <item>
      <title>GHSA-983w-rhvv-gwmv — WeasyPrint has a Server-Side Request Forgery (SSRF) Protection Bypass via HTTP Redirect</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-983w-rhvv-gwmv</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: weasyprint&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;A **Server-Side Request Forgery (SSRF) Protection Bypass** exists in WeasyPrint&amp;#39;s `default_url_fetcher`. The vulnerability allows attackers to access internal network resources (such as `localhost` services or cloud metadata endpoints) even when a developer has implemented a custom `url_fetcher` to block such access. This occurs because the underlying `urllib` library follows HTTP redirects automatically without re-validating the new destination against the developer&amp;#39;s security policy.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The default URL fetching mechanism in WeasyPrint (default_url_fetcher in weasyprint/urls.py) is vulnerable to a Server-Side Request Forgery (SSRF) Protection Bypass.&lt;/p&gt;
&lt;p&gt;While WeasyPrint allows developers to define custom url_fetcher functions to validate or sanitize URLs before fetching (e.g., blocking internal IP addresses or specific ports), the underlying implementation uses Python&amp;#39;s standard urllib.request.urlopen. By default, urllib automatically follows HTTP redirects (status codes 301, 302, 307, etc.) without returning control to the developer&amp;#39;s validation logic for the new target URL.&lt;/p&gt;
&lt;p&gt;This behavior creates a Time-of-Check to Time-of-Use (TOCTOU) vulnerability. An attacker can provide a URL that passes the developer&amp;#39;s allowlist/blocklist (the Check) but immediately redirects to a blocked internal resource (the Use).&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;To reproduce this vulnerability, use the following setup. This scenario simulates a developer attempting to blacklist access to internal…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: weasyprint&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;A **Server-Side Request Forgery (SSRF) Protection Bypass** exists in WeasyPrint&amp;#39;s `default_url_fetcher`. The vulnerability allows attackers to access internal network resources (such as `localhost` services or cloud metadata endpoints) even when a developer has implemented a custom `url_fetcher` to block such access. This occurs because the underlying `urllib` library follows HTTP redirects automatically without re-validating the new destination against the developer&amp;#39;s security policy.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The default URL fetching mechanism in WeasyPrint (default_url_fetcher in weasyprint/urls.py) is vulnerable to a Server-Side Request Forgery (SSRF) Protection Bypass.&lt;/p&gt;
&lt;p&gt;While WeasyPrint allows developers to define custom url_fetcher functions to validate or sanitize URLs before fetching (e.g., blocking internal IP addresses or specific ports), the underlying implementation uses Python&amp;#39;s standard urllib.request.urlopen. By default, urllib automatically follows HTTP redirects (status codes 301, 302, 307, etc.) without returning control to the developer&amp;#39;s validation logic for the new target URL.&lt;/p&gt;
&lt;p&gt;This behavior creates a Time-of-Check to Time-of-Use (TOCTOU) vulnerability. An attacker can provide a URL that passes the developer&amp;#39;s allowlist/blocklist (the Check) but immediately redirects to a blocked internal resource (the Use).&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;To reproduce this vulnerability, use the following setup. This scenario simulates a developer attempting to blacklist access to internal…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-983w-rhvv-gwmv</guid>
    </item>
    <item>
      <title>PYSEC-2026-2034 — WeasyPrint has a Server-Side Request Forgery (SSRF) Protection Bypass via HTTP Redirect</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2026-2034</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: weasyprint&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;A **Server-Side Request Forgery (SSRF) Protection Bypass** exists in WeasyPrint&amp;#39;s `default_url_fetcher`. The vulnerability allows attackers to access internal network resources (such as `localhost` services or cloud metadata endpoints) even when a developer has implemented a custom `url_fetcher` to block such access. This occurs because the underlying `urllib` library follows HTTP redirects automatically without re-validating the new destination against the developer&amp;#39;s security policy.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The default URL fetching mechanism in WeasyPrint (default_url_fetcher in weasyprint/urls.py) is vulnerable to a Server-Side Request Forgery (SSRF) Protection Bypass.&lt;/p&gt;
&lt;p&gt;While WeasyPrint allows developers to define custom url_fetcher functions to validate or sanitize URLs before fetching (e.g., blocking internal IP addresses or specific ports), the underlying implementation uses Python&amp;#39;s standard urllib.request.urlopen. By default, urllib automatically follows HTTP redirects (status codes 301, 302, 307, etc.) without returning control to the developer&amp;#39;s validation logic for the new target URL.&lt;/p&gt;
&lt;p&gt;This behavior creates a Time-of-Check to Time-of-Use (TOCTOU) vulnerability. An attacker can provide a URL that passes the developer&amp;#39;s allowlist/blocklist (the Check) but immediately redirects to a blocked internal resource (the Use).&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;To reproduce this vulnerability, use the following setup. This scenario simulates a developer attempting to blacklist access to internal…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: weasyprint&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;A **Server-Side Request Forgery (SSRF) Protection Bypass** exists in WeasyPrint&amp;#39;s `default_url_fetcher`. The vulnerability allows attackers to access internal network resources (such as `localhost` services or cloud metadata endpoints) even when a developer has implemented a custom `url_fetcher` to block such access. This occurs because the underlying `urllib` library follows HTTP redirects automatically without re-validating the new destination against the developer&amp;#39;s security policy.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The default URL fetching mechanism in WeasyPrint (default_url_fetcher in weasyprint/urls.py) is vulnerable to a Server-Side Request Forgery (SSRF) Protection Bypass.&lt;/p&gt;
&lt;p&gt;While WeasyPrint allows developers to define custom url_fetcher functions to validate or sanitize URLs before fetching (e.g., blocking internal IP addresses or specific ports), the underlying implementation uses Python&amp;#39;s standard urllib.request.urlopen. By default, urllib automatically follows HTTP redirects (status codes 301, 302, 307, etc.) without returning control to the developer&amp;#39;s validation logic for the new target URL.&lt;/p&gt;
&lt;p&gt;This behavior creates a Time-of-Check to Time-of-Use (TOCTOU) vulnerability. An attacker can provide a URL that passes the developer&amp;#39;s allowlist/blocklist (the Check) but immediately redirects to a blocked internal resource (the Use).&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;To reproduce this vulnerability, use the following setup. This scenario simulates a developer attempting to blacklist access to internal…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2026-2034</guid>
    </item>
  </channel>
</rss>
