Cloudanix VulnDB

CVE-2023-44443

High · 7.8

CVSS

7.8

EPSS

93.6%

Published

May 3, 2024

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Attend

A malicious image file can take over a computer if someone opens it with an unpatched version of GIMP.

Exploitation
Requires User Interaction
Attacker needs
User Interaction
Complexity
Moderate
Impact
Remote Code Execution
Component
Application
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The flaw is an integer overflow in GIMP's Paint Shop Pro (PSP) file parser. A crafted PSP image can cause size calculations to wrap before a memory write, leading to memory corruption. If exploitation is successful, attacker-controlled code can run inside the GIMP process with the privileges of the user who opened or previewed the malicious file. Because the vulnerable component is a file parser, exploitation requires user interaction, such as opening a malicious image, importing it into GIMP, or visiting a page or workflow that causes the file to be handled by GIMP.

Why it matters to the business

Successful exploitation can compromise a user's workstation, allowing theft or alteration of local files accessible to that user, credential theft from the endpoint, malware execution, or further movement into business systems. The risk is elevated because the EPSS score is very high, indicating a strong likelihood of exploitation activity compared with most vulnerabilities, even though it is not currently listed in CISA KEV and no ransomware use is reported. Organizations that use GIMP for design, marketing, publishing, research, or file review workflows should treat untrusted image handling as a meaningful endpoint compromise risk.

How an attack unfolds

An attacker prepares a malformed PSP file that abuses the parser's integer calculation so that GIMP allocates or computes an incorrect buffer size and then writes beyond the intended memory region. The attacker delivers the file through phishing, file-sharing platforms, collaboration tools, websites, support tickets, design asset exchanges, or other channels where users are likely to open image files. When a user opens or imports the crafted PSP file in a vulnerable GIMP build, the parser processes attacker-controlled fields, triggers the integer overflow, corrupts memory, and may divert execution to attacker-controlled code. If successful, the payload runs as the current user, enabling local data access, malware staging, persistence attempts, or follow-on activity using that user's permissions.

How to fix it

Upgrade GIMP to a version that includes the upstream fix, or ensure builds include commit 1651e6e767965cf055e05d13e075095d226f1c66. Where vendor-packaged GIMP versions are used, apply the latest security update from the operating system or software distribution vendor rather than relying only on source commit status. If immediate patching is not possible, reduce exposure by blocking or quarantining untrusted PSP files, disabling automatic opening of PSP files with GIMP, restricting GIMP use to trusted files only, and using endpoint controls to prevent GIMP from spawning script interpreters, shells, download utilities, or unknown executables. Treat file-based mitigations as temporary because similar parser bugs may be triggered through normal user workflows.

How to confirm the fix worked

Confirm installed GIMP versions and package build metadata across endpoints, and verify that the deployed source or vendor package includes the fix corresponding to commit 1651e6e767965cf055e05d13e075095d226f1c66. Test file association policies to ensure PSP files are not automatically opened by vulnerable GIMP builds. Review software inventory, EDR telemetry, and package manager records for outdated GIMP installations. For source-built deployments, compare the local repository or build artifact against the fixed commit. For packaged deployments, validate the installed package version against the vendor's security advisory or changelog for this vulnerability.

Typical attack path

  1. Identify organizations or users likely to open image or design files with GIMP.
  2. Create or obtain a malicious PSP file crafted to trigger the integer overflow in GIMP's PSP parser.
  3. Deliver the file through phishing, a malicious web page, file-sharing service, collaboration platform, or compromised asset repository.
  4. Convince the target user to open or import the PSP file in a vulnerable GIMP installation.
  5. Trigger memory corruption during PSP parsing and execute code in the context of the GIMP process.
  6. Use the compromised user context to drop additional payloads, access local files, steal credentials or tokens, or attempt lateral movement.

How to detect it

Look for signs that GIMP opened or processed PSP files from untrusted sources, followed by crashes, abnormal child processes, new executable files, persistence changes, or outbound network activity. Useful log sources include EDR process telemetry, operating system application crash logs, shell history, file creation events, email and web gateway attachment logs, proxy logs, DNS logs, and file association/open-with telemetry where available. On Linux, review system journal, kernel, apport, coredump, and audit logs for GIMP segmentation faults or abnormal process trees. On Windows, review Event Viewer Application Error entries, Windows Error Reporting artifacts, Sysmon process creation events, and EDR detections involving gimp.exe. On macOS, review Unified Logs, crash reports under user and system DiagnosticReports paths, quarantine metadata for downloaded PSP files, and process execution telemetry. High-signal behavior includes GIMP opening a .psp file shortly before a crash, GIMP spawning a shell or scripting runtime, GIMP writing executable content, or outbound connections initiated by GIMP or a child process after file parsing.

  • .psp
  • gimp
  • gimp.exe
  • gimp-2.10.exe
  • gimp-2.99.exe
  • gimp-console
  • gimp-console.exe
  • app_name="gimp"
  • process.name:gimp.exe
  • process.name:gimp
  • parent_process_name="gimp.exe"
  • parent_process_name="gimp"
  • gimp: segfault
  • segfault at
  • core dumped
  • GIMP crashed
  • Application Error
  • Faulting application name: gimp.exe
  • Windows Error Reporting
  • /var/lib/systemd/coredump/
  • /var/crash/
  • ~/Library/Logs/DiagnosticReports/gimp
  • /Library/Logs/DiagnosticReports/gimp
  • cmd.exe spawned by gimp.exe
  • powershell.exe spawned by gimp.exe
  • sh spawned by gimp
  • bash spawned by gimp
  • python spawned by gimp
  • curl spawned by gimp
  • wget spawned by gimp

What your security team should do

  • Prioritize patching or replacing vulnerable GIMP installations, especially on workstations used to process external images, design assets, email attachments, or customer-supplied files.
  • Search endpoint inventory for GIMP installations from source builds, third-party repositories, portable bundles, and unmanaged user-installed copies, not only centrally managed packages.
  • Temporarily block or detonate externally sourced PSP files in email, web download, collaboration, and file-transfer channels until vulnerable installations are remediated.
  • Harden endpoint controls so GIMP cannot spawn shells, scripting engines, installers, archive tools, or network download utilities without alerting.
  • Hunt for suspicious GIMP child processes, crashes followed by new executable creation, or network connections shortly after PSP files are opened.
  • Educate users in image-handling roles to avoid opening unsolicited PSP files or design assets from untrusted sources.
  • Because the EPSS score is very high, treat remediation as time-sensitive even though the vulnerability is not currently in CISA KEV.

The record

GIMP PSP File Parsing Integer Overflow Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of GIMP. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file. The specific flaw exists within the parsing of PSP files. The issue results from the lack of proper validation of user-supplied data, which can result in an integer overflow before writing to memory. An attacker can leverage this vulnerability to execute code in the context of the current process. Was ZDI-CAN-22096.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:8 gimp 0 2:2.8.22-26.module_el8.10.0+3952+571e801c
AlmaLinux:8 gimp-devel 0 2:2.8.22-26.module_el8.10.0+3952+571e801c
AlmaLinux:8 gimp-devel-tools 0 2:2.8.22-26.module_el8.10.0+3952+571e801c
AlmaLinux:8 gimp-libs 0 2:2.8.22-26.module_el8.10.0+3952+571e801c
AlmaLinux:8 pygobject2 0 2.28.7-5.module_el8.10.0+3952+571e801c
AlmaLinux:8 pygobject2-codegen 0 2.28.7-5.module_el8.10.0+3952+571e801c
AlmaLinux:8 pygobject2-devel 0 2.28.7-5.module_el8.10.0+3952+571e801c
AlmaLinux:8 pygobject2-doc 0 2.28.7-5.module_el8.10.0+3952+571e801c
AlmaLinux:8 pygtk2 0 2.24.0-25.module_el8.9.0+3725+d1441900
AlmaLinux:8 pygtk2-codegen 0 2.24.0-25.module_el8.9.0+3725+d1441900
AlmaLinux:8 pygtk2-devel 0 2.24.0-25.module_el8.9.0+3725+d1441900
AlmaLinux:8 pygtk2-doc 0 2.24.0-25.module_el8.9.0+3725+d1441900
AlmaLinux:8 python2-cairo 0 1.16.3-7.module_el8.10.0+3952+571e801c
AlmaLinux:8 python2-cairo-devel 0 1.16.3-7.module_el8.10.0+3952+571e801c
AlmaLinux:9 gimp 0 2:2.99.8-4.el9_5
AlmaLinux:9 gimp 0 2:2.99.8-4.el9_6
AlmaLinux:9 gimp 0 2:2.99.8-4.el9_3
AlmaLinux:9 gimp-libs 0 2:2.99.8-4.el9_5
AlmaLinux:9 gimp-libs 0 2:2.99.8-4.el9_6
AlmaLinux:9 gimp-libs 0 2:2.99.8-4.el9_3
Debian:11 gimp 0 2.10.22-4+deb11u1
Debian:12 gimp 0 2.10.34-1+deb12u1
Debian:13 gimp 0 2.10.36-1
Debian:14 gimp 0 2.10.36-1
Mageia:8 gegl 0 0.4.38-1.mga8
Mageia:8 gimp 0 2.10.36-1.mga8
Mageia:9 gimp 0 2.10.36-1.mga9
Red Hat:enterprise_linux:9::appstream gimp 0 2:2.99.8-4.el9_3
Red Hat:enterprise_linux:9::appstream gimp-debuginfo 0 2:2.99.8-4.el9_3
Red Hat:enterprise_linux:9::appstream gimp-debugsource 0 2:2.99.8-4.el9_3
Red Hat:enterprise_linux:9::appstream gimp-devel-tools-debuginfo 0 2:2.99.8-4.el9_3
Red Hat:enterprise_linux:9::appstream gimp-libs 0 2:2.99.8-4.el9_3
Red Hat:enterprise_linux:9::appstream gimp-libs-debuginfo 0 2:2.99.8-4.el9_3
Red Hat:rhel_eus:9.0::appstream gimp 0 2:2.99.8-3.el9_0
Red Hat:rhel_eus:9.0::appstream gimp-debuginfo 0 2:2.99.8-3.el9_0
Red Hat:rhel_eus:9.0::appstream gimp-debugsource 0 2:2.99.8-3.el9_0
Red Hat:rhel_eus:9.0::appstream gimp-devel-tools-debuginfo 0 2:2.99.8-3.el9_0
Red Hat:rhel_eus:9.0::appstream gimp-libs 0 2:2.99.8-3.el9_0
Red Hat:rhel_eus:9.0::appstream gimp-libs-debuginfo 0 2:2.99.8-3.el9_0
Red Hat:rhel_eus:9.2::appstream gimp 0 2:2.99.8-4.el9_2
Red Hat:rhel_eus:9.2::appstream gimp-debuginfo 0 2:2.99.8-4.el9_2
Red Hat:rhel_eus:9.2::appstream gimp-debugsource 0 2:2.99.8-4.el9_2
Red Hat:rhel_eus:9.2::appstream gimp-devel-tools-debuginfo 0 2:2.99.8-4.el9_2
Red Hat:rhel_eus:9.2::appstream gimp-libs 0 2:2.99.8-4.el9_2
Red Hat:rhel_eus:9.2::appstream gimp-libs-debuginfo 0 2:2.99.8-4.el9_2
Rocky Linux:8 gimp 0 2:2.8.22-26.module+el8.10.0+1927+52edb5a0
Rocky Linux:8 pygobject2 0 0:2.28.7-5.module+el8.10.0+1927+52edb5a0
Rocky Linux:8 pygtk2 0 0:2.24.0-25.module+el8.9.0+1723+9bc93544
Rocky Linux:8 python2-pycairo 0 0:1.16.3-7.module+el8.10.0+1927+52edb5a0
Rocky Linux:9 gimp 0 2:2.99.8-4.el9_3
Rocky Linux:9 gimp 0 2:2.99.8-4.el9_6
SUSE:Linux Enterprise Module for Package Hub 15 SP4 gimp 0 2.10.30-150400.3.11.1
SUSE:Linux Enterprise Module for Package Hub 15 SP5 gimp 0 2.10.30-150400.3.11.1
SUSE:Linux Enterprise Workstation Extension 15 SP4 gimp 0 2.10.30-150400.3.11.1
SUSE:Linux Enterprise Workstation Extension 15 SP5 gimp 0 2.10.30-150400.3.11.1
Ubuntu:20.04:LTS gimp 0 2.10.18-1
Ubuntu:20.04:LTS gimp 0 2.10.18-1ubuntu0.1
Ubuntu:22.04:LTS gimp 0 2.10.30-1ubuntu0.1
Ubuntu:23.10 gimp 0 2.10.34-1ubuntu0.23.10.1
openSUSE:Leap 15.4 gimp 0 2.10.30-150400.3.11.1
openSUSE:Leap 15.5 gimp 0 2.10.30-150400.3.11.1
openSUSE:Tumbleweed gimp 0 2.10.38-4.1

Related vulnerabilities