<?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>Sun, 04 Oct 2026 15:33:24 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-28231 — pillow_heif Has Integer Overflow in Encode Path Buffer Validation that Leads to Heap Out-of-Bounds Read</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-28231</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; bigcat88 pillow_heif&lt;/p&gt;
&lt;p&gt;pillow_heif is a Python library for working with HEIF images and plugin for Pillow. Prior to version 1.3.0, an integer overflow in the encode path buffer validation of `_pillow_heif.c` allows an attacker to bypass bounds checks by providing large image dimensions, resulting in a heap out-of-bounds read. This can lead to information disclosure (server heap memory leaking into encoded images) or denial of service (process crash). No special configuration is required — this triggers under default settings. Version 1.3.0 fixes the issue.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; bigcat88 pillow_heif&lt;/p&gt;
&lt;p&gt;pillow_heif is a Python library for working with HEIF images and plugin for Pillow. Prior to version 1.3.0, an integer overflow in the encode path buffer validation of `_pillow_heif.c` allows an attacker to bypass bounds checks by providing large image dimensions, resulting in a heap out-of-bounds read. This can lead to information disclosure (server heap memory leaking into encoded images) or denial of service (process crash). No special configuration is required — this triggers under default settings. Version 1.3.0 fixes the issue.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-28231</guid>
    </item>
    <item>
      <title>GHSA-5gjj-6r7v-ph3x — pillow-heif: Integer Overflow in Encode Path Buffer Validation Leads to Heap Out-of-Bounds Read</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-5gjj-6r7v-ph3x</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: pi-heif, PyPI: pillow-heif&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;An integer overflow in the encode path buffer validation of `_pillow_heif.c` allows an attacker to bypass bounds checks by providing large image dimensions, resulting in a heap out-of-bounds read. This can lead to information disclosure (server heap memory leaking into encoded images) or denial of service (process crash). No special configuration is required — this triggers under default settings.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The buffer validation in `_CtxWriteImage_add_plane()`, `_CtxWriteImage_add_plane_la()`, and `_CtxWriteImage_add_plane_l()` uses 32-bit `int` multiplication to check whether the input buffer is large enough:&lt;/p&gt;
&lt;p&gt;```c
// _pillow_heif.c, lines 158, 344, 449
if (stride_in * height &amp;gt; buffer.len) {
    PyBuffer_Release(&amp;amp;buffer);
    PyErr_SetString(PyExc_ValueError, &amp;#34;image plane does not contain enough data&amp;#34;);
    return NULL;
}
```&lt;/p&gt;
&lt;p&gt;Both `stride_in` and `height` are declared as `int` (32-bit signed). When their product exceeds `INT_MAX` (2,147,483,647), the multiplication overflows before the comparison with `buffer.len` (which is `Py_ssize_t`, 64-bit). The overflowed value wraps to zero or a negative number, causing the bounds check to pass incorrectly.&lt;/p&gt;
&lt;p&gt;For example, with `stride_in = 196608` (65536 × 3 for RGB) and `height = 65536`:
- True product: 12,884,901,888
- `int32` product: 0 (wraps around)
- Comparison: `0 &amp;gt; buffer.len` → `false` → check bypassed&lt;/p&gt;
&lt;p&gt;After the check is bypassed, the subsequent loop reads beyond the input buffer:&lt;/p&gt;
&lt;p&gt;```c
for (int i = 0; i &amp;lt;…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: pi-heif, PyPI: pillow-heif&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;An integer overflow in the encode path buffer validation of `_pillow_heif.c` allows an attacker to bypass bounds checks by providing large image dimensions, resulting in a heap out-of-bounds read. This can lead to information disclosure (server heap memory leaking into encoded images) or denial of service (process crash). No special configuration is required — this triggers under default settings.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The buffer validation in `_CtxWriteImage_add_plane()`, `_CtxWriteImage_add_plane_la()`, and `_CtxWriteImage_add_plane_l()` uses 32-bit `int` multiplication to check whether the input buffer is large enough:&lt;/p&gt;
&lt;p&gt;```c
// _pillow_heif.c, lines 158, 344, 449
if (stride_in * height &amp;gt; buffer.len) {
    PyBuffer_Release(&amp;amp;buffer);
    PyErr_SetString(PyExc_ValueError, &amp;#34;image plane does not contain enough data&amp;#34;);
    return NULL;
}
```&lt;/p&gt;
&lt;p&gt;Both `stride_in` and `height` are declared as `int` (32-bit signed). When their product exceeds `INT_MAX` (2,147,483,647), the multiplication overflows before the comparison with `buffer.len` (which is `Py_ssize_t`, 64-bit). The overflowed value wraps to zero or a negative number, causing the bounds check to pass incorrectly.&lt;/p&gt;
&lt;p&gt;For example, with `stride_in = 196608` (65536 × 3 for RGB) and `height = 65536`:
- True product: 12,884,901,888
- `int32` product: 0 (wraps around)
- Comparison: `0 &amp;gt; buffer.len` → `false` → check bypassed&lt;/p&gt;
&lt;p&gt;After the check is bypassed, the subsequent loop reads beyond the input buffer:&lt;/p&gt;
&lt;p&gt;```c
for (int i = 0; i &amp;lt;…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-5gjj-6r7v-ph3x</guid>
    </item>
    <item>
      <title>PYSEC-2026-2248</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2026-2248</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: pi-heif&lt;/p&gt;
&lt;p&gt;pillow_heif is a Python library for working with HEIF images and plugin for Pillow. Prior to version 1.3.0, an integer overflow in the encode path buffer validation of `_pillow_heif.c` allows an attacker to bypass bounds checks by providing large image dimensions, resulting in a heap out-of-bounds read. This can lead to information disclosure (server heap memory leaking into encoded images) or denial of service (process crash). No special configuration is required — this triggers under default settings. Version 1.3.0 fixes the issue.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: pi-heif&lt;/p&gt;
&lt;p&gt;pillow_heif is a Python library for working with HEIF images and plugin for Pillow. Prior to version 1.3.0, an integer overflow in the encode path buffer validation of `_pillow_heif.c` allows an attacker to bypass bounds checks by providing large image dimensions, resulting in a heap out-of-bounds read. This can lead to information disclosure (server heap memory leaking into encoded images) or denial of service (process crash). No special configuration is required — this triggers under default settings. Version 1.3.0 fixes the issue.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2026-2248</guid>
    </item>
  </channel>
</rss>
