CVE-2025-59733
Full vulnerability record from the local CVENow database.
Description
When decoding an OpenEXR file that uses DWAA or DWAB compression, there's an implicit assumption that all image channels have the same pixel type (and size), and that if there are four channels, the first four are "B", "G", "R" and "A". The channel parsing code can be found in decode_header. The buffer td->uncompressed_data is allocated in decode_block based on the xsize, ysize and computed current_channel_offset. The function dwa_uncompress then assumes at [5] that if there are 4 channels, these are "B", "G", "R" and "A", and in the calculations at [6] and [7] that all channels are of the same type, which matches the type of the main color channels. If we set the main color channels to a 4-byte type and add duplicate or unknown channels of the 2-byte EXR_HALF type, then the addition at [7] will increment the pointer by 4-bytes * xsize * nb_channels, which will exceed the allocated buffer. We recommend upgrading to version 8.0 or beyond.
View original CVE JSON
{
"id": "CVE-2025-59733",
"sourceIdentifier": "[email protected]",
"published": "2025-10-06T08:15:35.080",
"lastModified": "2026-10-19T16:10:00.260",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "When decoding an OpenEXR file that uses DWAA or DWAB compression, there's an implicit assumption that all image channels have the same pixel type (and size), and that if there are four channels, the first four are \"B\", \"G\", \"R\" and \"A\". The channel parsing code can be found in decode_header. The buffer td->uncompressed_data is allocated in decode_block based on the xsize, ysize and computed current_channel_offset.\n\nThe function dwa_uncompress then assumes at [5] that if there are 4 channels, these are \"B\", \"G\", \"R\" and \"A\", and in the calculations at [6] and [7] that all channels are of the same type, which matches the type of the main color channels.\n\nIf we set the main color channels to a 4-byte type and add duplicate or unknown channels of the 2-byte EXR_HALF type, then the addition at [7] will increment the pointer by 4-bytes * xsize * nb_channels, which will exceed the allocated buffer.\n\n\n\n\n\nWe recommend upgrading to version 8.0 or beyond."
},
{
"lang": "es",
"value": "Al decodificar un archivo OpenEXR que utiliza compresión DWAA o DWAB, existe una suposición implícita de que todos los canales de imagen tienen el mismo tipo de píxel (y tamaño), y de que si hay cuatro canales, los primeros cuatro son 'B', 'G', 'R' y 'A'. El código de análisis de canales se encuentra en decode_header. El búfer td -> uncompressed_data se asigna en decode_block basándose en xsize, ysize y el current_channel_offset calculado.\n\nLa función dwa_uncompress entonces asume en [5] que si hay 4 canales, estos son 'B', 'G', 'R' y 'A', y en los cálculos en [6] y [7] que todos los canales son del mismo tipo, lo que coincide con el tipo de los canales de color principales.\n\nSi configuramos los canales de color principales a un tipo de 4 bytes y añadimos canales duplicados o desconocidos del tipo EXR_HALF de 2 bytes, entonces la suma en [7] incrementará el puntero en 4 bytes * xsize * nb_channels, lo que excederá el búfer asignado.\n\nRecomendamos actualizar a la versión 8.0 o posterior."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "FFmpeg",
"product": "FFmpeg",
"defaultStatus": "unaffected",
"collectionURL": "https://git.ffmpeg.org/ffmpeg.git",
"packageName": "EXR",
"repo": "https://git.ffmpeg.org/ffmpeg.git",
"versions": [
{
"version": "9a32b863074ed4140141e0d3613905c6f1fe61c5",
"lessThan": "8.0",
"versionType": "custom",
"status": "affected"
},
{
"version": "7.1.1",
"lessThan": "8.0",
"versionType": "semver",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV40": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "4.0",
"vectorString": "CVSS:4.0/AV:A/AC:H/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"baseScore": 8.7,
"baseSeverity": "HIGH",
"attackVector": "ADJACENT",
"attackComplexity": "HIGH",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"userInteraction": "PASSIVE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH",
"vulnAvailabilityImpact": "NONE",
"subConfidentialityImpact": "HIGH",
"subIntegrityImpact": "HIGH",
"subAvailabilityImpact": "NONE",
"exploitMaturity": "NOT_DEFINED",
"confidentialityRequirement": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"availabilityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"valueDensity": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED"
}
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2025-10-08T03:55:14.505751Z",
"id": "CVE-2025-59733",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-787"
}
]
}
],
"references": [
{
"url": "https://issuetracker.google.com/436511754",
"source": "[email protected]"
}
]
}