<?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://db.gcve.eu</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>Fri, 23 Oct 2026 23:24:57 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-96644</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-96644</link>
      <description>&lt;p&gt;Pillow is a Python imaging library. Prior to 13.0.0 on Windows, src/PIL/WmfImagePlugin.py passes unchecked 32-bit WMF or EMF dimensions to the native drawwmf handler in src/display.c. The handler sizes a DIB allocation from 16-bit-truncated bcWidth and bcHeight fields but copies pixel data using the original full dimensions. A crafted wide, short metafile can pass the pixel-count decompression-bomb check and make the Windows-only renderer read beyond the heap buffer, potentially disclosing memory or crashing the process. This issue is fixed in version 13.0.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Pillow is a Python imaging library. Prior to 13.0.0 on Windows, src/PIL/WmfImagePlugin.py passes unchecked 32-bit WMF or EMF dimensions to the native drawwmf handler in src/display.c. The handler sizes a DIB allocation from 16-bit-truncated bcWidth and bcHeight fields but copies pixel data using the original full dimensions. A crafted wide, short metafile can pass the pixel-count decompression-bomb check and make the Windows-only renderer read beyond the heap buffer, potentially disclosing memory or crashing the process. This issue is fixed in version 13.0.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-96644</guid>
    </item>
    <item>
      <title>GHSA-9v9v-9qvf-h2hj — Pillow: Heap over-read in WMF/EMF rendering via 16-bit dimension truncation (Windows builds)</title>
      <link>https://db.gcve.eu/vuln/ghsa-9v9v-9qvf-h2hj</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: Pillow&lt;/p&gt;
&lt;p&gt;### Summary
On Windows builds, Pillow stores EMF and WMF image dimensions without a range check and passes them to the native `drawwmf` handler. That code sizes its allocation from dimensions truncated into 16-bit header fields but copies the result using the full 32-bit dimensions. A crafted metafile that is wide and short passes the decompression-bomb pixel check yet causes a heap over-read.&lt;/p&gt;
&lt;p&gt;### Details
The EMF branch computes the size straight from signed 32-bit header fields and stores it with no positivity or range check:&lt;/p&gt;
&lt;p&gt;- `src/PIL/WmfImagePlugin.py:121-129` reads the bounding box; `:148` stores it; the size reaches the native handler through `src/PIL/WmfImagePlugin.py:56`.&lt;/p&gt;
&lt;p&gt;In the native handler the DIB header fields `bcWidth` and `bcHeight` are 16-bit and truncate the allocation, while the copy length uses the untruncated ints:&lt;/p&gt;
&lt;p&gt;- `src/display.c:793-794` assign the 16-bit fields
- `src/display.c:800` sizes the allocation from them
- `src/display.c:827` copies `height * ((width * 3 + 3) &amp;amp; -4)` bytes using the full values&lt;/p&gt;
&lt;p&gt;The whole handler is compiled only on Windows (`#ifdef _WIN32`, `src/display.c:33-841`).&lt;/p&gt;
&lt;p&gt;### PoC
```python
import struct
from PIL import Image&lt;/p&gt;
&lt;p&gt;def L(v):
    return struct.pack(&amp;#34;&amp;lt;i&amp;#34;, v)&lt;/p&gt;
&lt;p&gt;# Minimal EMF header. Bounding box is 70000 x 1, so the pixel count (70000) passes the
# decompression-bomb check, but the width truncates to 16 bits for the allocation while
# the copy uses 70000.
emf  = b&amp;#34;\x01\x00\x00\x00&amp;#34; + L(88)          # record type + size
e…&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
On Windows builds, Pillow stores EMF and WMF image dimensions without a range check and passes them to the native `drawwmf` handler. That code sizes its allocation from dimensions truncated into 16-bit header fields but copies the result using the full 32-bit dimensions. A crafted metafile that is wide and short passes the decompression-bomb pixel check yet causes a heap over-read.&lt;/p&gt;
&lt;p&gt;### Details
The EMF branch computes the size straight from signed 32-bit header fields and stores it with no positivity or range check:&lt;/p&gt;
&lt;p&gt;- `src/PIL/WmfImagePlugin.py:121-129` reads the bounding box; `:148` stores it; the size reaches the native handler through `src/PIL/WmfImagePlugin.py:56`.&lt;/p&gt;
&lt;p&gt;In the native handler the DIB header fields `bcWidth` and `bcHeight` are 16-bit and truncate the allocation, while the copy length uses the untruncated ints:&lt;/p&gt;
&lt;p&gt;- `src/display.c:793-794` assign the 16-bit fields
- `src/display.c:800` sizes the allocation from them
- `src/display.c:827` copies `height * ((width * 3 + 3) &amp;amp; -4)` bytes using the full values&lt;/p&gt;
&lt;p&gt;The whole handler is compiled only on Windows (`#ifdef _WIN32`, `src/display.c:33-841`).&lt;/p&gt;
&lt;p&gt;### PoC
```python
import struct
from PIL import Image&lt;/p&gt;
&lt;p&gt;def L(v):
    return struct.pack(&amp;#34;&amp;lt;i&amp;#34;, v)&lt;/p&gt;
&lt;p&gt;# Minimal EMF header. Bounding box is 70000 x 1, so the pixel count (70000) passes the
# decompression-bomb check, but the width truncates to 16 bits for the allocation while
# the copy uses 70000.
emf  = b&amp;#34;\x01\x00\x00\x00&amp;#34; + L(88)          # record type + size
e…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-9v9v-9qvf-h2hj</guid>
    </item>
    <item>
      <title>UBUNTU-CVE-2026-96644</title>
      <link>https://db.gcve.eu/vuln/ubuntu-cve-2026-96644</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:Pro:14.04:LTS: pillow, Ubuntu:Pro:16.04:LTS: pillow, Ubuntu:Pro:18.04:LTS: pillow, Ubuntu:Pro:20.04:LTS: pillow, Ubuntu:Pro:20.04:LTS: pillow-python2, Ubuntu:22.04:LTS: pillow, Ubuntu:24.04:LTS: pillow, Ubuntu:26.10: pillow, Ubuntu:26.04:LTS: pillow&lt;/p&gt;
&lt;p&gt;(Pillow is a Python imaging library. Prior to 13.0.0 on Windows, src/PI ...)&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:Pro:14.04:LTS: pillow, Ubuntu:Pro:16.04:LTS: pillow, Ubuntu:Pro:18.04:LTS: pillow, Ubuntu:Pro:20.04:LTS: pillow, Ubuntu:Pro:20.04:LTS: pillow-python2, Ubuntu:22.04:LTS: pillow, Ubuntu:24.04:LTS: pillow, Ubuntu:26.10: pillow, Ubuntu:26.04:LTS: pillow&lt;/p&gt;
&lt;p&gt;(Pillow is a Python imaging library. Prior to 13.0.0 on Windows, src/PI ...)&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ubuntu-cve-2026-96644</guid>
    </item>
  </channel>
</rss>
