<?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>Mon, 12 Oct 2026 14:36:51 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-34588 — OpenEXR has a signed 32-bit Overflow in PIZ Decoder Leads to OOB Read/Write</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-34588</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; AcademySoftwareFoundation openexr, Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 10.0 Extended Update Support, Red Hat Enterprise Linux 9, Red Hat Enterprise Linux 9.0 Update Services for SAP Solutions, Red Hat Enterprise Linux 9.2 Update Services for SAP Solutions, Red Hat Enterprise Linux 9.4 Extended Update Support, Red Hat Enterprise Linux 9.6 Extended Update Support, Red Hat AI Inference Server 3.3, Red Hat Enterprise Linux 6 and 2 more&lt;/p&gt;
&lt;p&gt;OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From 3.1.0 to before 3.2.7, 3.3.9, and 3.4.9, internal_exr_undo_piz() advances the working wavelet pointer with signed 32-bit arithmetic. Because nx, ny, and wcount are int, a crafted EXR file can make this product overflow and wrap. The next channel then decodes from an incorrect address. The wavelet decode path operates in place, so this yields both out-of-bounds reads and out-of-bounds writes. This vulnerability is fixed in 3.2.7, 3.3.9, and 3.4.9.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; AcademySoftwareFoundation openexr, Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 10.0 Extended Update Support, Red Hat Enterprise Linux 9, Red Hat Enterprise Linux 9.0 Update Services for SAP Solutions, Red Hat Enterprise Linux 9.2 Update Services for SAP Solutions, Red Hat Enterprise Linux 9.4 Extended Update Support, Red Hat Enterprise Linux 9.6 Extended Update Support, Red Hat AI Inference Server 3.3, Red Hat Enterprise Linux 6 and 2 more&lt;/p&gt;
&lt;p&gt;OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From 3.1.0 to before 3.2.7, 3.3.9, and 3.4.9, internal_exr_undo_piz() advances the working wavelet pointer with signed 32-bit arithmetic. Because nx, ny, and wcount are int, a crafted EXR file can make this product overflow and wrap. The next channel then decodes from an incorrect address. The wavelet decode path operates in place, so this yields both out-of-bounds reads and out-of-bounds writes. This vulnerability is fixed in 3.2.7, 3.3.9, and 3.4.9.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-34588</guid>
    </item>
    <item>
      <title>GHSA-588r-cr5c-w6hf — OpenEXR has a signed 32-bit Overflow in PIZ Decoder Leads to OOB Read/Write</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-588r-cr5c-w6hf</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: OpenEXR&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`internal_exr_undo_piz()` advances the working wavelet pointer with signed 32-bit arithmetic:&lt;/p&gt;
&lt;p&gt;```c
wavbuf += nx * ny * wcount;
```&lt;/p&gt;
&lt;p&gt;Because `nx`, `ny`, and `wcount` are `int`, a crafted EXR file can make this product overflow and wrap. The next channel then decodes from an incorrect address. The wavelet decode path operates in place, so this yields both out-of-bounds reads and out-of-bounds writes.&lt;/p&gt;
&lt;p&gt;Tested on commit 7820b7e1b93405ba1d551c43a945018226b75bc5&lt;/p&gt;
&lt;p&gt;## Technical Details&lt;/p&gt;
&lt;p&gt;The vulnerable decode path is:&lt;/p&gt;
&lt;p&gt;1. `internal_exr_undo_piz()` sets `wavbuf = decode-&amp;gt;scratch_buffer_1`.
2. For each channel, it calls `wav_2D_decode (wavbuf + j, ...)`.
3. It then advances `wavbuf` with `wavbuf += nx * ny * wcount`.&lt;/p&gt;
&lt;p&gt;The overflow happens in step 3. Once `wavbuf` is wrapped, the next channel&amp;#39;s wavelet decode runs on the wrong address.&lt;/p&gt;
&lt;p&gt;In the 14-bit wavelet path, `wdec14_4()` first reads:&lt;/p&gt;
&lt;p&gt;- `*px`
- `*p10`
- `*p01`
- `*p11`&lt;/p&gt;
&lt;p&gt;and then writes back to the same locations:&lt;/p&gt;
&lt;p&gt;- `*px  = ...`
- `*p01 = ...`
- `*p10 = ...`
- `*p11 = ...`&lt;/p&gt;
&lt;p&gt;As a result, the bug is not just a crash-only invalid read. It is an out-of-bounds read/write condition.&lt;/p&gt;
&lt;p&gt;## Reproduction&lt;/p&gt;
&lt;p&gt;[piz_scanline_redzone.zip](https://github.com/user-attachments/files/26318946/piz_scanline_redzone.zip)&lt;/p&gt;
&lt;p&gt;Build `exrcheck` with ASAN and run:&lt;/p&gt;
&lt;p&gt;```
❯ ./build-asan/bin/exrcheck /tmp/piz_scanline_redzone.exr
 file /tmp/piz_scanline_redzone.exr /home/pop/sec/openexr/src/lib/OpenEXRCore/internal_piz.c:373:19: runtime error: signed in…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: OpenEXR&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`internal_exr_undo_piz()` advances the working wavelet pointer with signed 32-bit arithmetic:&lt;/p&gt;
&lt;p&gt;```c
wavbuf += nx * ny * wcount;
```&lt;/p&gt;
&lt;p&gt;Because `nx`, `ny`, and `wcount` are `int`, a crafted EXR file can make this product overflow and wrap. The next channel then decodes from an incorrect address. The wavelet decode path operates in place, so this yields both out-of-bounds reads and out-of-bounds writes.&lt;/p&gt;
&lt;p&gt;Tested on commit 7820b7e1b93405ba1d551c43a945018226b75bc5&lt;/p&gt;
&lt;p&gt;## Technical Details&lt;/p&gt;
&lt;p&gt;The vulnerable decode path is:&lt;/p&gt;
&lt;p&gt;1. `internal_exr_undo_piz()` sets `wavbuf = decode-&amp;gt;scratch_buffer_1`.
2. For each channel, it calls `wav_2D_decode (wavbuf + j, ...)`.
3. It then advances `wavbuf` with `wavbuf += nx * ny * wcount`.&lt;/p&gt;
&lt;p&gt;The overflow happens in step 3. Once `wavbuf` is wrapped, the next channel&amp;#39;s wavelet decode runs on the wrong address.&lt;/p&gt;
&lt;p&gt;In the 14-bit wavelet path, `wdec14_4()` first reads:&lt;/p&gt;
&lt;p&gt;- `*px`
- `*p10`
- `*p01`
- `*p11`&lt;/p&gt;
&lt;p&gt;and then writes back to the same locations:&lt;/p&gt;
&lt;p&gt;- `*px  = ...`
- `*p01 = ...`
- `*p10 = ...`
- `*p11 = ...`&lt;/p&gt;
&lt;p&gt;As a result, the bug is not just a crash-only invalid read. It is an out-of-bounds read/write condition.&lt;/p&gt;
&lt;p&gt;## Reproduction&lt;/p&gt;
&lt;p&gt;[piz_scanline_redzone.zip](https://github.com/user-attachments/files/26318946/piz_scanline_redzone.zip)&lt;/p&gt;
&lt;p&gt;Build `exrcheck` with ASAN and run:&lt;/p&gt;
&lt;p&gt;```
❯ ./build-asan/bin/exrcheck /tmp/piz_scanline_redzone.exr
 file /tmp/piz_scanline_redzone.exr /home/pop/sec/openexr/src/lib/OpenEXRCore/internal_piz.c:373:19: runtime error: signed in…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-588r-cr5c-w6hf</guid>
    </item>
  </channel>
</rss>
