CVE-2026-90949 Overview
CVE-2026-90949 is a heap-based buffer overflow [CWE-787] in the GIMP Paint Shop Pro (PSP) file loader. The flaw occurs when the loader processes a compressed selection channel and the allocated buffer size does not match the amount of data decompressed. A remote attacker can craft a malicious PSP file that triggers memory corruption when opened in GIMP. Successful exploitation can cause application crashes or arbitrary code execution in the context of the user running GIMP.
Critical Impact
Opening a crafted PSP file in a vulnerable GIMP build can lead to arbitrary code execution with the privileges of the local user.
Affected Products
- GIMP (GNU Image Manipulation Program) - PSP file loader plug-in
- Linux distributions packaging affected GIMP versions (see Red Hat advisory)
- Any downstream software bundling the vulnerable GIMP PSP loader
Discovery Timeline
- 2026-09-14 - CVE-2026-90949 published to the National Vulnerability Database (NVD)
- 2026-09-16 - Last updated in NVD database
Technical Details for CVE-2026-90949
Vulnerability Analysis
The defect resides in GIMP's PSP (Paint Shop Pro) file format loader. When the loader parses a compressed selection channel inside a PSP image, it allocates a heap buffer sized from metadata in the file. The decompression routine then writes the decoded stream into that buffer without verifying that the produced output fits. When the decompressed data exceeds the allocated capacity, the write extends past the buffer boundary and corrupts adjacent heap memory.
An attacker who controls the PSP file controls both the declared buffer size and the compressed payload. This gives precise control over the overflow length and the bytes written past the boundary. Depending on heap layout, the corruption can overwrite function pointers, object metadata, or allocator control structures, enabling arbitrary code execution in the GIMP process. Exploitation requires user interaction: the victim must open the malicious file. The full technical discussion is available in the GNOME GIMP work item #16753 and the Red Hat Security Advisory.
Root Cause
The root cause is a size mismatch between the buffer allocation and the decompression output for PSP selection channels. The loader trusts a size field in the file rather than validating the decoded stream length against the destination buffer, resulting in an out-of-bounds heap write [CWE-787].
Attack Vector
The attack vector is a malicious PSP file delivered through email, chat, file sharing, or a compromised website. When the user opens the file in GIMP or previews it through a service that invokes the GIMP loader, the vulnerable code path executes. No network exposure of GIMP is required. Additional context is available in Red Hat Bug Report #2533013.
// No verified proof-of-concept code is available.
// The vulnerability is triggered by parsing a crafted PSP file
// whose compressed selection channel decompresses to more bytes
// than the loader's allocated heap buffer can hold.
Detection Methods for CVE-2026-90949
Indicators of Compromise
- PSP files (.psp, .pspimage, .tub) received from untrusted sources, especially with anomalous or oversized selection channel metadata
- GIMP process crashes with SIGSEGV or SIGABRT immediately after opening an image file
- Heap corruption reports in dmesg, journalctl, or abrt logs referencing the gimp binary or the PSP loader plug-in
- Unexpected child processes spawned by gimp shortly after a file open event
Detection Strategies
- Inspect endpoint telemetry for GIMP crashes correlated with .psp or .pspimage file access events.
- Use YARA or file-type scanners at mail and web gateways to flag PSP files carrying malformed compressed channel headers.
- Monitor for GIMP spawning shells, interpreters, or network utilities, which indicates post-exploitation activity.
- Correlate file download events with subsequent GIMP execution to identify targeted delivery.
Monitoring Recommendations
- Forward workstation process, file, and crash telemetry to a centralized data lake for retrospective hunting.
- Alert on GIMP invoking /bin/sh, bash, python, curl, or wget as child processes.
- Track PSP file ingress across email, collaboration platforms, and removable media.
How to Mitigate CVE-2026-90949
Immediate Actions Required
- Apply the GIMP security update from your Linux distribution or the upstream GNOME project as soon as it is available.
- Instruct users not to open PSP files from untrusted or unverified sources until the patch is deployed.
- Inventory endpoints with GIMP installed and prioritize patching for users who routinely process third-party image files.
Patch Information
Refer to the Red Hat Security Advisory for CVE-2026-90949 for fixed package versions and distribution-specific update instructions. Upstream fix tracking is available in GNOME GIMP work item #16753.
Workarounds
- Disable or remove the PSP file loader plug-in from the GIMP plug-ins directory if it is not required.
- Block .psp and .pspimage attachments at mail and web gateways until patched GIMP builds are deployed.
- Open untrusted image files inside a sandbox, container, or disposable virtual machine that has no access to sensitive data.
- Enforce standard user privileges on workstations to limit the impact of successful exploitation.
# Locate and disable the PSP loader plug-in on Linux (adjust path per distribution)
find /usr/lib*/gimp -name 'file-psp*' -print
sudo chmod a-x /usr/lib64/gimp/2.10/plug-ins/file-psp/file-psp
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

