<?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>Thu, 29 Oct 2026 09:26:26 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-112398 — Pillow: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code execution</title>
      <link>https://db.gcve.eu/vuln/cve-2026-112398</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. Prior to 13.0.0, Pillow&amp;#39;s FlashPix JPEG-tile decoder can write decoded scanlines beyond the allocated tile buffer. FlashPix (FPX) JPEG decoding selects raw mode LA with two bytes per pixel, while an unrecognized JPEG mode can be decoded as JCS_UNKNOWN with four components, causing ImagingJpegDecode to write four-component scanlines into the two-byte tile buffer. An attacker can supply a crafted OLE2 FlashPix file to an application with the optional olefile dependency installed that opens or thumbnails untrusted input. This can corrupt heap memory and may allow arbitrary code execution. This issue is fixed in version 13.0.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. Prior to 13.0.0, Pillow&amp;#39;s FlashPix JPEG-tile decoder can write decoded scanlines beyond the allocated tile buffer. FlashPix (FPX) JPEG decoding selects raw mode LA with two bytes per pixel, while an unrecognized JPEG mode can be decoded as JCS_UNKNOWN with four components, causing ImagingJpegDecode to write four-component scanlines into the two-byte tile buffer. An attacker can supply a crafted OLE2 FlashPix file to an application with the optional olefile dependency installed that opens or thumbnails untrusted input. This can corrupt heap memory and may allow arbitrary code execution. This issue is fixed in version 13.0.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-112398</guid>
    </item>
    <item>
      <title>GHSA-5x8w-8jj5-q52h — Pillow: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code execution</title>
      <link>https://db.gcve.eu/vuln/ghsa-5x8w-8jj5-q52h</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: pillow&lt;/p&gt;
&lt;p&gt;### Credits&lt;/p&gt;
&lt;p&gt;**Researcher**: Alex Bouffard (mixbo@pebwalker.com)&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;A heap buffer overflow in Pillow&amp;#39;s FlashPix (FPX) JPEG-tile decoder lets an attacker achieve arbitrary code execution by getting an application to open a single crafted file with `Image.open()`. The file is recognized by content (the OLE2 magic), not by extension, so any service that opens or thumbnails untrusted uploads with the optional `olefile` dependency installed is reachable with no user interaction. In the PoC below, opening one crafted file executes an attacker-chosen command on stock Pillow 12.2.0 (x86_64 Ubuntu 24.04, glibc 2.39).&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;`FpxImagePlugin` decodes FlashPix (FPX) files, which are OLE2/CFBF compound documents.&lt;/p&gt;
&lt;p&gt;`Image.open()` auto-detects them from the OLE2 magic `D0CF11E0...` whenever the optional `olefile` package is installed (Pillow&amp;#39;s documented dependency for FPX/MIC support), regardless of the file&amp;#39;s extension.&lt;/p&gt;
&lt;p&gt;For a JPEG-compressed subimage (`compression == 2`), the plugin builds a `&amp;#34;jpeg&amp;#34;` decode tile and derives the `(rawmode, jpegmode)` pair from attacker-controlled FPX color IDs through the `MODES` table ([`src/PIL/FpxImagePlugin.py` L25-L32](https://github.com/python-pillow/Pillow/blob/12.2.0/src/PIL/FpxImagePlugin.py#L25-L32)):&lt;/p&gt;
&lt;p&gt;```python
MODES = {
    ...
    (0x00018000, 0x00017FFE): (&amp;#34;RGBA&amp;#34;, &amp;#34;LA&amp;#34;),                # rawmode &amp;#34;LA&amp;#34;  (2 bytes/pixel)
    ...
    (0x00020000, 0x00020001, 0x00020002): (&amp;#34;RGB&amp;#34;, &amp;#34;YCC;P&amp;#34;),  # rawmode &amp;#34;YCC;P&amp;#34;
}
```&lt;/p&gt;
&lt;p&gt;The Imaging o…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: pillow&lt;/p&gt;
&lt;p&gt;### Credits&lt;/p&gt;
&lt;p&gt;**Researcher**: Alex Bouffard (mixbo@pebwalker.com)&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;A heap buffer overflow in Pillow&amp;#39;s FlashPix (FPX) JPEG-tile decoder lets an attacker achieve arbitrary code execution by getting an application to open a single crafted file with `Image.open()`. The file is recognized by content (the OLE2 magic), not by extension, so any service that opens or thumbnails untrusted uploads with the optional `olefile` dependency installed is reachable with no user interaction. In the PoC below, opening one crafted file executes an attacker-chosen command on stock Pillow 12.2.0 (x86_64 Ubuntu 24.04, glibc 2.39).&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;`FpxImagePlugin` decodes FlashPix (FPX) files, which are OLE2/CFBF compound documents.&lt;/p&gt;
&lt;p&gt;`Image.open()` auto-detects them from the OLE2 magic `D0CF11E0...` whenever the optional `olefile` package is installed (Pillow&amp;#39;s documented dependency for FPX/MIC support), regardless of the file&amp;#39;s extension.&lt;/p&gt;
&lt;p&gt;For a JPEG-compressed subimage (`compression == 2`), the plugin builds a `&amp;#34;jpeg&amp;#34;` decode tile and derives the `(rawmode, jpegmode)` pair from attacker-controlled FPX color IDs through the `MODES` table ([`src/PIL/FpxImagePlugin.py` L25-L32](https://github.com/python-pillow/Pillow/blob/12.2.0/src/PIL/FpxImagePlugin.py#L25-L32)):&lt;/p&gt;
&lt;p&gt;```python
MODES = {
    ...
    (0x00018000, 0x00017FFE): (&amp;#34;RGBA&amp;#34;, &amp;#34;LA&amp;#34;),                # rawmode &amp;#34;LA&amp;#34;  (2 bytes/pixel)
    ...
    (0x00020000, 0x00020001, 0x00020002): (&amp;#34;RGB&amp;#34;, &amp;#34;YCC;P&amp;#34;),  # rawmode &amp;#34;YCC;P&amp;#34;
}
```&lt;/p&gt;
&lt;p&gt;The Imaging o…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-5x8w-8jj5-q52h</guid>
    </item>
  </channel>
</rss>
