Vulnerability · Published Apr 18, 2026 · Assigned by GitHub_M
CVE-2026-40492SAIL has heap buffer overflow in XWD decoder — bits_per_pixel vs pixmap_depth type confusion in byte-swap
Critical 9.8
In plain English
A critical-severity out-of-bounds write in sail from HappySeaFox. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.4% (higher than 36% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
SAIL is a cross-platform library for loading and saving images with support for animation, metadata, and ICC profiles. Prior to commit 36aa5c7ec8a2bb35f6fb867a1177a6f141156b02, the XWD codec resolves pixel format based on `pixmap_depth` but the byte-swap code uses `bits_per_pixel` independently. When `pixmap_depth=8` (BPP8_INDEXED, 1 byte/pixel buffer) but `bits_per_pixel=32`, the byte-swap loop accesses memory as `uint32_t*`, reading/writing 4x the allocated buffer size. This is a different vulnerability from the previously reported GHSA-3g38-x2pj-mv55 (CVE-2026-27168), which addressed `bytes_per_line` validation. Commit 36aa5c7ec8a2bb35f6fb867a1177a6f141156b02 contains a patch.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian:13 | sail | no fix listed | DEBIAN-CVE-2026-40492 |
| Debian:14 | sail | 0.9.10-2 | DEBIAN-CVE-2026-40492 |
| Ubuntu:25.10 | sail | no fix listed | UBUNTU-CVE-2026-40492 |
| Ubuntu:26.04:LTS | sail | no fix listed | UBUNTU-CVE-2026-40492 |
| Ubuntu:26.10 | sail | no fix listed | UBUNTU-CVE-2026-40492 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| HappySeaFox | sail | < 36aa5c7ec8a2bb35f6fb867a1177a6f141156b02 |
Weakness: CWE-787 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H