☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Gimp logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.1 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H 🐛 CWE-125
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-82330

CVE-2026-82330 Out-of-Bounds Access in GIMP
📅 PUBLISHED: 2026-08-28 00:00 UTC 🔄 UPDATED: 2026-09-26 06:15 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.19%
👁️
0.19% probability
4.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1203
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Global License: Open Source
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.1
AV: L Attack Vector Local
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: L Confidentiality Low
I: N Integrity None
A: H Availability High
6.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-82330 is a heap out-of-bounds read vulnerability in the file-pvr plugin of GIMP, specifically within the VQ (compressed) decoder when processing malformed PVR image files. The flaw stems from missing memory bounds checking during the decompression of VQ-compressed data, allowing a specially crafted image to read beyond the boundaries of an allocated heap buffer. Exploitation requires user interaction — specifically, opening a malicious image file in GIMP — and can result in an application crash (denial of service) or limited disclosure of heap memory contents to an attacker who can subsequently analyze crash output or memory dumps. As of the time of this analysis, the vulnerability remains unpatched, with no vendor advisory, patch evidence, or public exploit code available. Given the local attack vector and high availability impact (CVSS 6.1), this vulnerability is a moderate risk primarily targeting individuals or environments where GIMP is used to process untrusted image files.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The file-pvr plugin in GIMP is designed to parse PVR (PowerVR) image containers, a legacy graphics format commonly used in older video game textures and embedded systems. Within the PVR format, VQ (Vector Quantization) is a compression scheme that encodes image blocks as indices into a codebook, where each codebook entry represents a color vector for a small pixel block. During decompression, the VQ decoder iterates over compressed blocks, retrieves the corresponding codebook entries, and reconstructs the final image buffer.

The vulnerability exists because the VQ decoder fails to perform proper bounds checking against the allocated heap buffer's size before performing read operations. When processing a specially crafted PVR file — for example, one that declares a larger image dimension than the actual compressed data contains, or that provides VQ indices pointing outside the codebook or output buffer — the decoder reads past the end of the heap-allocated memory region. This class of flaw is categorized under CWE-125 (Out-of-bounds Read), and in this instance manifests as a heap out-of-bounds read.

The specific root cause lies in the absence of validation between the decompressed data size computed from image headers (width, height, pixel format) and the actual allocated buffer size. A malicious file can declare image dimensions or VQ block counts that, when multiplied by the expected bytes-per-block, produce a total size larger than the buffer that was actually allocated. The decoder then proceeds to read from indices within this declared — but not actually present — address space, accessing memory adjacent to the heap allocation.

From a memory-safety perspective, an out-of-bounds read on the heap does not directly write to attacker-controlled memory, but it can leak adjacent heap contents. In GIMP's context, this adjacent memory may contain other image data, plugin state structures, or portions of the application's heap metadata. The information disclosure is limited, not only because of the CVSS confidentiality score of L (Low), but also because the leaked data would need to be captured through crash logs, core dumps, or differential analysis of multiple crafted files. The primary practical consequence is the availability impact — an application crash via a segmentation fault or similar memory access violation triggered when the decoder attempts to read an invalid memory address that falls outside the process's mapped address space.

No specific code-level details of the vulnerable functions, file paths, or line numbers are publicly available beyond the plugin name "file-pvr" and the compression type "VQ." The plugin historically resides in the GIMP source tree under the plug-ins directory; however, this report does not speculate on exact file names that are not confirmed in the NVD description.


Exploitation Scenarios

Preconditions: The attacker must deliver a specially crafted PVR image file to a target user. This can be achieved through email attachments, malicious downloads, web content that triggers automatic opening in associated applications, or bundling within archive files. The target must open the file using GIMP. No elevated privileges or prior access to the target system is required, consistent with the CVSS vector components: AV:L (Local — requires the attacker to have access to the system or to deliver a file locally), PR:N (No privileges required), and UI:R (User interaction required).

Attack chain (inferred from vulnerability class; no public PoC available):

  1. Reconnaissance / Target Identification: The attacker identifies targets likely to use GIMP — graphic designers, game developers (given the PVR format's use in game textures), digital artists, or users of Linux distributions where GIMP is a pre-installed image editor. The attacker may also target organizations with public FTP/web directories accepting user-uploaded images that are later processed by GIMP for thumbnailing or conversion.

  2. Malicious File Construction: At the vulnerability-class level, the attacker constructs a PVR file with a valid container header but malformed VQ data. This involves declaring image dimensions (width/height) in the header that are inconsistent with the actual compressed data payload, or providing a VQ codebook or index stream of insufficient length relative to what the image dimensions imply. The goal is to cause the VQ decoder to compute a decompressed size larger than the buffer it allocates, leading to reads beyond the heap boundary.

  3. Triggering the Vulnerability: The attacker delivers the crafted file to the victim via social engineering, a phishing email, or a malicious website. The victim opens the file in GIMP. Upon file load, the file-pvr plugin parses the header, allocates buffers based on declared dimensions, and invokes the VQ decoder. The decoder reads from the undersized buffer, accessing out-of-bounds heap memory. If the read lands on an unmapped or protected page, the process terminates with a segmentation fault. If it reads a mapped but unexpected address, the crash may occur later when the corrupted image data is rendered.

  4. Post-Exploitation Impact: The immediate post-exploitation effect is application denial of service — GIMP crashes, potentially losing unsaved work and interrupting the user's workflow. For information disclosure, the attacker would need to capture the leaked data. This could be done by: (a) analyzing core dumps generated by the crash to extract heap contents adjacent to the PVR image buffer; (b) using a differential approach — crafting multiple files that cause reads at different offsets and comparing crash locations or output differences; or (c) combining the crash with a debugger on a local test system to read leaked memory. The disclosed data is limited to heap memory contents, which may include fragments of previously processed images, user clipboard data, or other application state. This does not directly lead to remote code execution or privilege escalation, but it could inform further attacks by revealing memory layout information.

It is important to emphasize that no public PoC or exploit code exists for this CVE as of the analysis date, and the attack chain above is inferred from the vulnerability class (heap out-of-bounds read in an image decoder) rather than confirmed implementation details. The absence of a patch and the requirement for user interaction mean the primary realistic scenario is a targeted denial-of-service attack or, in a more sophisticated scenario, a heap-information-leak primitive used to support a chain against a separate memory corruption vulnerability.


Impact Assessment

CVSS Context: The vulnerability scores 6.1 (Medium) with vector CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H. Breaking this down: Attack Vector is Local (AV:L), meaning the attacker must have local access to the target system, either through direct access or by convincing the user to open a malicious file locally. Attack Complexity is Low (AC:L) — no special conditions are needed beyond opening the file. Privileges Required is None (PR:N), as no pre-authentication or elevated privilege is needed. User Interaction is Required (UI:R), specifically the user opening the file. The scope is Unchanged (S:U). Confidentiality Impact is Low (C:L) — limited information disclosure of heap memory. Integrity Impact is None (I:N). Availability Impact is High (A:H) — application crash leading to denial of service.

Business Impact: For individual users and small teams, the impact is a temporary loss of productivity when GIMP crashes. For enterprises, the impact scales with how GIMP is integrated into workflows: organizations using GIMP in automated image processing pipelines (batch conversion, thumbnail generation, asset processing for web or game development) could experience workflow interruption if a malicious file enters the pipeline. In high-availability environments where GIMP is a service component (e.g., automated image moderation or rendering farms), a crafted file could repeatedly crash worker processes, leading to a broader denial-of-service condition.

Affected Systems and Blast Radius: The affected component is the file-pvr plugin in GIMP, which is bundled with stock GIMP distributions across all major operating systems — Windows, macOS, Linux. The blast radius is limited to the GIMP application process; the out-of-bounds read does not cross privilege boundaries or affect other system processes. However, in multi-user environments (shared workstations, render farms), a malicious file opened by one user could crash GIMP for that user session only, not for the entire system.

Information Disclosure Assessment: The heap leak is limited in practical value. The leaked data is constrained to whatever resides adjacent to the PVR image buffer in GIMP's heap. This could include image data from previously opened files, clipboard contents, or application state strings. In a multi-user or shared system context, it is theoretically possible for heap data to contain remnants of other users' data if the system does not re-zero freed heap pages; however, modern operating systems typically clear freed pages, reducing this risk. The informational value of the leak to an attacker is primarily as a memory-orientation primitive for chaining with other vulnerabilities.


Detection Guidance

The following detection guidance focuses on identifying the delivery of malicious PVR files and attempts to exploit the vulnerability. Given that this is a local file-processing vulnerability, network-based detection is limited to identifying file transfers, while host-based detection focuses on anomalous GIMP behavior and crash patterns.

Sigma Rule

title: Suspicious PVR File Processing in GIMP
id: 3f8a24c1-7b2e-4a9c-9e1f-2d4c6b8a0e5f
status: experimental
description: Detects GIMP processes handling PVR files with unusual crash behavior or rapid successive crashes, potentially indicating exploitation of CVE-2026-82330.
author: Valters IT Security Research
date: 2026/02/15
tags:
    - attack.t1203
    - attack.execution
logsource:
    category: process_creation
    product: windows
detection:
    selection_gimp:
        Image|endswith: 'gimp-2.10.exe'  # Adjust for GIMP version/binary name
        CommandLine|contains: '.pvr'
    selection_crash:
        Image|endswith: 'gimp-2.10.exe'
        ExitCode: 0xC0000005  # Access violation
    condition: selection_gimp and selection_crash
    timeframe: 5m
falsepositives:
    - Legitimate GIMP use with malformed or corrupted PVR files that crash without malicious intent
    - Automated image processing scripts that fail to handle PVR format errors gracefully
level: medium

YARA Rule

rule GIMP_PVR_Heap_OOB_Read_CVE_2026_82330
{
    meta:
        author = "Valters IT Security Research"
        description = "Detects malicious PVR files exploiting the VQ decoder heap out-of-bounds read in GIMP file-pvr plugin"
        date = "2026-02-15"
        severity = "medium"
        reference = "CVE-2026-82330"
    strings:
        // PVR header magic bytes - common variants (big endian and little endian)
        $pvr_magic_be = { 50 56 52 21 }  // "PVR!"
        $pvr_magic_le = { 21 52 56 50 }  // "!RVP" (reversed)
        
        // VQ compression flag indicators - PVR texture format bits
        $vq_flag_1 = { 00 00 08 00 }    // Common VQ flag in header
        $vq_flag_2 = { 00 00 0C 00 }    // VQ+compression variant
        
        // Suspiciously large dimensions (potential trigger for OOB read)
        // Width/Height fields exceeding typical texture sizes (4096x4096)
        $large_dim_hi = { FF FF }
        $large_dim_lo = { FF 0F 00 00 }  // 4095+ in little-endian
        
    condition:
        uint32(0) == 0x21525650 or uint32(0) == 0x50565221 and
        (any of ($vq_flag_*) and
         any of ($large_dim_*)) and
        filesize < 30MB  // Realistic size filter for PVR files
}

Suricata IDS Rule

alert http any any -> $HOME_NET any (msg:"GIMP PVR File Download - Potential CVE-2026-82330 Exploitation Vector"; flow:established,to_client; filemagic:"PVR"; fileext:"pvr"; classtype:attempted-dos; reference:cve,2026-82330; sid:202682330; rev:1;)

Note: Network detection for this locally-processed vulnerability is limited. The primary network vector is the delivery of the malicious PVR file. This rule detects HTTP-based downloads of PVR files, which should be treated as suspicious enterprise-wide given the unpatched status. For SMTP (email) delivery, an equivalent rule using the smtp protocol keyword would be appropriate. For SMB shares, consider the smb protocol keyword.

Elastic Detection

// EQL query to detect GIMP crashes following PVR file processing
sequence by process.entity_id
  [process where process.name : "gimp*" and
   process.args : "*.pvr" and
   process.args : "*"]  // Capture PVR file invocation
  [process where process.name : "gimp*" and
   process.exit_code == -1073741819]  // 0xC0000005 as signed int
| tail 5

Additional Elastic detection using Filebeat/auditd logs on Linux systems to detect GIMP crashes when processing PVR files:

// Detect GIMP process crashes correlated with recent PVR file access
sequence with maxspan=5m
  [file where event.action : "open" and file.name : "*.pvr" and
   process.name : "gimp*"]
  [process where process.name : "gimp*" and
   process.exit_code : -1073741819 or process.exit_code : 11]  // SIGSEGV on Linux

Splunk SPL Query

index=windows sourcetype=WinEventLog:Application EventCode=1000
| where Message LIKE "%gimp%"
| rex field=Message "Faulting application name: (?<app_name>[^,]+)"
| search app_name=gimp*
| rex field=Message "Faulting module name: (?<module>[^,]+)"
| stats count by app_name, module, _time
| where count > 5
| eval threat_score = count * 10
| rename _time as timestamp
| table timestamp, app_name, module, count, threat_score
| sort - threat_score

For Linux-based GIMP processing pipelines:

index=linux sourcetype=auditd
| search process=gimp* AND (exit_code=11 OR exit_code=139)
| eval timestamp=_time
| stats count by host, process, exit_code, timestamp
| where count > 3
| eval threat_score = count * 10
| table timestamp, host, process, exit_code, count, threat_score
| sort - threat_score

Wazuh OSSEC Rule

<group name="gimp,">
    <rule id="202823" level="8">
        <decoded_as>syslog</decoded_as>
        <field name="program">gimp</field>
        <regex>Segmentation fault|Fatal error|Segmentation violation</regex>
        <description>GIMP process crash detected - possible CVE-2026-82330 exploitation (PVR file heap out-of-bounds read)</description>
        <group>gimp_vuln,</group>
        <mitre>
            <id>T1203</id>
        </mitre>
        <var name="alert_level">8</var>
    </rule>

    <rule id="202824" level="10">
        <decoded_as>syslog</decoded_as>
        <field name="program">gimp</field>
        <regex>Segmentation fault|Fatal error</regex>
        <match>\.pvr</match>
        <description>GIMP crashed while processing a .pvr file - likely CVE-2026-82330 exploitation attempt</description>
        <group>gimp_vuln,</group>
        <mitre>
            <id>T1203</id>
        </mitre>
        <if_sid>202823</if_sid>
        <var name="alert_level">10</var>
    </rule>

    <rule id="202825" level="12">
        <decoded_as>syslog</decoded_as>
        <field name="program">gimp</field>
        <regex>\.pvr</regex>
        <match>out of memory|Allocation failed|heap corruption|Corrupt image</match>
        <description>GIMP reports memory errors while processing PVR file - active exploitation of CVE-2026-82330 suspected</description>
        <group>gimp_vuln,</group>
        <mitre>
            <id>T1203</id>
        </mitre>
        <if_sid>202823,202824</if_sid>
        <var name="alert_level">12</var>
    </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 0/4 — UNPATCHED. No vendor advisory, patch, or fix is currently available from any tracked source. The GIMP project has not released an official statement or patched version addressing CVE-2026-82330. This constitutes an unpatched window during which the vulnerability exists in all shipped versions of the file-pvr plugin.

1. Immediate Mitigations (No Patch Available):

  • Do not open PVR files from untrusted sources. If GIMP is used in an enterprise environment, strictly prohibit the processing of PVR files unless they originate from a verified, trusted internal source. Educate users about the risks of opening image files from email attachments, downloads, or removable media.
  • Disable the file-pvr plugin if it is not essential to organizational workflows. GIMP supports plugin disabling via the plugin registry — rename or remove the plugin binary (historically named file-pvr or similar) from the plugin directory, or use the -g flag with a custom pluginrc that excludes the PVR loader. In GIMP's plug-ins directory, removing or renaming the file-pvr executable effectively disables PVR file support. Note: This action will break legitimate PVR file handling.
  • Use an alternative image viewer/processor for PVR files. If PVR file processing is required, utilize a different tool that implements the PVR format parser with memory-safe practices. Do not use GIMP as the default handler for PVR files.
  • Restrict GIMP usage in high-risk contexts. For automated pipelines that process images from external sources (user uploads, scraped content), do not route PVR files through GIMP. Add content filtering to reject .pvr file extensions at the gateway or application layer.
  • Implement generic heap-bounds-checking mitigations at the OS level, where available — e.g., enabling the system allocator's guard-page and heap integrity features (such as glibc's MALLOC_CHECK_=3 or Windows' PageHeap). These will convert some out-of-bounds reads into crashes rather than silent data leaks, though they do not eliminate the vulnerability.

2. Patch/Upgrade Steps:

  • Monitor for vendor updates. Subscribe to GIMP project release announcements (gimp.org, GIMP's GitLab repository) for a patched version addressing CVE-2026-82330. When a patched version is released, upgrade GIMP immediately.
  • Apply a provisional backport if possible. If the organization has the capacity to build GIMP from source, consider applying a manual bounds-check patch to the VQ decoder based on the NVD description — specifically, add validation that the computed decompression size does not exceed the allocated buffer size. This is a provisional measure and should only be attempted by teams with GIMP source-level expertise.
  • Until a patch is available, treat any PVR file as a security risk and implement the immediate mitigations above. Regularly re-check patch sources (NVD, GIMP git repository) for updates.

3. Long-Term Hardening:

  • Enable address space layout randomization (ASLR) and data execution prevention (DEP)/NX on all systems running GIMP. While these do not mitigate the out-of-bounds read itself, they reduce the reliability of any chained exploitation.
  • Implement a "deny by default" file-type policy for image processing tools. Only allow file formats that are required for business operations, and route them through sandboxed environments (containers, virtual machines) when processed automatically.
  • Establish a vulnerability notification process for all plugins bundled with GIMP and other graphics applications. Track CVEs affecting image-processing libraries and plugins, and ensure patches are applied promptly.
  • Use memory-safe alternatives where feasible. For high-security environments, evaluate whether GIMP is necessary or whether an alternative image editor with stronger memory safety guarantees (e.g., those built on Rust or with extensive fuzzing) can replace it.
  • Conduct an audit of any prior PVR file processing in the environment to determine whether any untrusted files may have already been processed, and assess whether any heap-memory leakage could have exposed sensitive adjacent data.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-82330 — Official NVD record containing the CVE description, CVSS score (6.1, CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H), and CWE classification (CWE-125).

  2. CWE-125 — Out-of-bounds Read: https://cwe.mitre.org/data/definitions/125.html — Reference for the vulnerability class, detailing the mechanism of reading beyond a memory buffer boundary.

  3. GIMP Project (Official Site): https://www.gimp.org/ — Monitor for official GIMP release notes and security advisories regarding the file-pvr plugin and any patched versions addressing CVE-2026-82330. No advisory has been published at the time of writing.

  4. GIMP Git Repository: https://gitlab.gnome.org/GNOME/gimp — Monitor the GIMP source repository for commits referencing the file-pvr plugin and VQ decoder bounds-check fixes. No patch has been committed at the time of writing.

  5. CISA KEV (Known Exploited Vulnerabilities): CVE-2026-82330 is NOT listed in the CISA Known Exploited Vulnerabilities catalog. This confirms no confirmed or widely reported in-the-wild exploitation has been documented as of the analysis date.

Threat Actor Activity: No known threat actor campaigns, exploit-in-the-wild evidence, or public exploit code has been reported for CVE-2026-82330. The vulnerability is currently considered a theoretical attack vector that requires local file delivery and user interaction. The absence of a patch, combined with the low confidentiality and non-zero information-disclosure value, may make this an attractive target for future exploitation in the wild once weaponization techniques mature.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"GIMP"
http.html:"gimp" "portrait"
product:"GIMP"
http.title:"GIMP" "download"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-82330/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.