<?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://cve.radiocsirt.org</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>Wed, 07 Oct 2026 03:58:03 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-59200 — Pillow: Decompression Bomb DoS via PdfParser.PdfStream.decode()</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-59200</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; python-pillow Pillow&lt;/p&gt;
&lt;p&gt;Pillow is a Python imaging library. From 5.1.0 until 12.3.0, PdfParser.PdfStream.decode() in PIL/PdfParser.py calls zlib.decompress() with bufsize set to the PDF stream Length field without bounding the decompressed output size, allowing a crafted FlateDecode PDF stream to exhaust memory from a small file. This issue is fixed in version 12.3.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; python-pillow Pillow&lt;/p&gt;
&lt;p&gt;Pillow is a Python imaging library. From 5.1.0 until 12.3.0, PdfParser.PdfStream.decode() in PIL/PdfParser.py calls zlib.decompress() with bufsize set to the PDF stream Length field without bounding the decompressed output size, allowing a crafted FlateDecode PDF stream to exhaust memory from a small file. This issue is fixed in version 12.3.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-59200</guid>
    </item>
    <item>
      <title>GHSA-jjj6-mw9f-p565 — Pillow: Decompression Bomb DoS via PdfParser.PdfStream.decode()</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-jjj6-mw9f-p565</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: Pillow&lt;/p&gt;
&lt;p&gt;### Summary
`PdfParser.PdfStream.decode()` in Pillow&amp;#39;s `PdfParser.py` calls `zlib.decompress()` with the `bufsize` parameter set to the value of the PDF stream&amp;#39;s `Length` field, without any upper bound on the actual decompressed output size. Python&amp;#39;s `zlib.decompress()` `bufsize` argument is an *initial output buffer hint*, not a maximum size limit — the function will expand memory until the full decompressed result is produced. A crafted PDF containing a FlateDecode-compressed stream decompresses to 1 GB of memory from a ~950 KB file, causing server OOM termination or severe degradation in any application that uses `PdfParser` to read untrusted PDF files.&lt;/p&gt;
&lt;p&gt;### Details
`PdfStream.decode()` in `pdfminer/PdfParser.py` reads the stream&amp;#39;s declared `Length` (or `DL`) field from the PDF dictionary and passes it as `bufsize` to `zlib.decompress()`:&lt;/p&gt;
&lt;p&gt;```python
# PIL/PdfParser.py — PdfStream.decode()
class PdfStream:
    def decode(self) -&amp;gt; bytes:
        try:
            filter = self.dictionary[b&amp;#34;Filter&amp;#34;]
        except KeyError:
            return self.buf
        if filter == b&amp;#34;FlateDecode&amp;#34;:
            try:
                expected_length = self.dictionary[b&amp;#34;DL&amp;#34;]
            except KeyError:
                expected_length = self.dictionary[b&amp;#34;Length&amp;#34;]
            return zlib.decompress(self.buf, bufsize=int(expected_length))
            #                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            #  bufsize is an *initial buffer hint*, NOT a maximum size limit.…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: Pillow&lt;/p&gt;
&lt;p&gt;### Summary
`PdfParser.PdfStream.decode()` in Pillow&amp;#39;s `PdfParser.py` calls `zlib.decompress()` with the `bufsize` parameter set to the value of the PDF stream&amp;#39;s `Length` field, without any upper bound on the actual decompressed output size. Python&amp;#39;s `zlib.decompress()` `bufsize` argument is an *initial output buffer hint*, not a maximum size limit — the function will expand memory until the full decompressed result is produced. A crafted PDF containing a FlateDecode-compressed stream decompresses to 1 GB of memory from a ~950 KB file, causing server OOM termination or severe degradation in any application that uses `PdfParser` to read untrusted PDF files.&lt;/p&gt;
&lt;p&gt;### Details
`PdfStream.decode()` in `pdfminer/PdfParser.py` reads the stream&amp;#39;s declared `Length` (or `DL`) field from the PDF dictionary and passes it as `bufsize` to `zlib.decompress()`:&lt;/p&gt;
&lt;p&gt;```python
# PIL/PdfParser.py — PdfStream.decode()
class PdfStream:
    def decode(self) -&amp;gt; bytes:
        try:
            filter = self.dictionary[b&amp;#34;Filter&amp;#34;]
        except KeyError:
            return self.buf
        if filter == b&amp;#34;FlateDecode&amp;#34;:
            try:
                expected_length = self.dictionary[b&amp;#34;DL&amp;#34;]
            except KeyError:
                expected_length = self.dictionary[b&amp;#34;Length&amp;#34;]
            return zlib.decompress(self.buf, bufsize=int(expected_length))
            #                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            #  bufsize is an *initial buffer hint*, NOT a maximum size limit.…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-jjj6-mw9f-p565</guid>
    </item>
  </channel>
</rss>
