167 lines
8.6 KiB
JSON
167 lines
8.6 KiB
JSON
{
|
||
"dataType": "CVE_RECORD",
|
||
"dataVersion": "5.1",
|
||
"cveMetadata": {
|
||
"cveId": "CVE-2025-59729",
|
||
"assignerOrgId": "14ed7db2-1595-443d-9d34-6215bf890778",
|
||
"state": "PUBLISHED",
|
||
"assignerShortName": "Google",
|
||
"dateReserved": "2025-09-19T08:11:37.549Z",
|
||
"datePublished": "2025-10-06T08:08:46.060Z",
|
||
"dateUpdated": "2025-10-06T16:28:37.534Z"
|
||
},
|
||
"containers": {
|
||
"cna": {
|
||
"affected": [
|
||
{
|
||
"collectionURL": "https://git.ffmpeg.org/ffmpeg.git",
|
||
"defaultStatus": "unaffected",
|
||
"modules": [
|
||
"get_duration"
|
||
],
|
||
"packageName": "DHAV",
|
||
"product": "FFmpeg",
|
||
"repo": "https://git.ffmpeg.org/ffmpeg.git",
|
||
"vendor": "FFmpeg",
|
||
"versions": [
|
||
{
|
||
"lessThan": "8.0",
|
||
"status": "affected",
|
||
"version": "a218cafe4d3be005ab0c61130f90db4d21afb5db",
|
||
"versionType": "custom"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"credits": [
|
||
{
|
||
"lang": "en",
|
||
"type": "finder",
|
||
"value": "Google Big Sleep"
|
||
}
|
||
],
|
||
"datePublic": "2025-07-21T22:00:00.000Z",
|
||
"descriptions": [
|
||
{
|
||
"lang": "en",
|
||
"supportingMedia": [
|
||
{
|
||
"base64": false,
|
||
"type": "text/html",
|
||
"value": "<p></p><p>When parsing the header for a DHAV file, there's an integer underflow in offset calculation that leads to reading the duration from before the start of the allocated buffer.</p><p>If we load a DHAV file that is larger than <code>MAX_DURATION_BUFFER_SIZE</code> bytes (<code>0x100000</code>) for example 0x101000 bytes, then at [0] we have <code>size = 0x101000</code>. At [1] we have <code>end_buffer_size = 0x100000</code>, and at [2] we have <code>end_buffer_pos = 0x1000</code>.</p><p>The loop then scans backwards through the buffer looking for the <code>dhav</code> tag; when it is found, we'll calculate <code>end_pos</code> based on a 32-bit offset read from the buffer.</p><p>There is subsequently a check [3] that <code>end_pos</code> is within the section of the file that has been copied into <code>end_buffer</code>, but it only correctly handles the cases where <code>end_pos</code> is <em>before the start of the file</em> or <em>after the section copied into <code>end_buffer</code></em>, and not the case where <code>end_pos</code> is within the the file, but before the section copied into <code>end_buffer</code>. If we provide such an offset, <code>(end_pos - end_buffer_pos)</code> can underflow, resulting in the subsequent access at [4] occurring before the beginning of the allocation.</p>We recommend upgrading to version 8.0 or beyond.<p></p><br>"
|
||
}
|
||
],
|
||
"value": "When parsing the header for a DHAV file, there's an integer underflow in offset calculation that leads to reading the duration from before the start of the allocated buffer.\n\nIf we load a DHAV file that is larger than MAX_DURATION_BUFFER_SIZE bytes (0x100000) for example 0x101000 bytes, then at [0] we have size = 0x101000. At [1] we have end_buffer_size = 0x100000, and at [2] we have end_buffer_pos = 0x1000.\n\nThe loop then scans backwards through the buffer looking for the dhav tag; when it is found, we'll calculate end_pos based on a 32-bit offset read from the buffer.\n\nThere is subsequently a check [3] that end_pos is within the section of the file that has been copied into end_buffer, but it only correctly handles the cases where end_pos is before the start of the file or after the section copied into end_buffer, and not the case where end_pos is within the the file, but before the section copied into end_buffer. If we provide such an offset, (end_pos - end_buffer_pos) can underflow, resulting in the subsequent access at [4] occurring before the beginning of the allocation.\n\nWe recommend upgrading to version 8.0 or beyond."
|
||
}
|
||
],
|
||
"impacts": [
|
||
{
|
||
"capecId": "CAPEC-100",
|
||
"descriptions": [
|
||
{
|
||
"lang": "en",
|
||
"value": "CAPEC-100 Overflow Buffers"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"metrics": [
|
||
{
|
||
"cvssV4_0": {
|
||
"Automatable": "NOT_DEFINED",
|
||
"Recovery": "NOT_DEFINED",
|
||
"Safety": "NOT_DEFINED",
|
||
"attackComplexity": "HIGH",
|
||
"attackRequirements": "PRESENT",
|
||
"attackVector": "ADJACENT",
|
||
"baseScore": 5.7,
|
||
"baseSeverity": "MEDIUM",
|
||
"privilegesRequired": "LOW",
|
||
"providerUrgency": "NOT_DEFINED",
|
||
"subAvailabilityImpact": "NONE",
|
||
"subConfidentialityImpact": "LOW",
|
||
"subIntegrityImpact": "HIGH",
|
||
"userInteraction": "PASSIVE",
|
||
"valueDensity": "NOT_DEFINED",
|
||
"vectorString": "CVSS:4.0/AV:A/AC:H/AT:P/PR:L/UI:P/VC:L/VI:H/VA:N/SC:L/SI:H/SA:N",
|
||
"version": "4.0",
|
||
"vulnAvailabilityImpact": "NONE",
|
||
"vulnConfidentialityImpact": "LOW",
|
||
"vulnIntegrityImpact": "HIGH",
|
||
"vulnerabilityResponseEffort": "NOT_DEFINED"
|
||
},
|
||
"format": "CVSS",
|
||
"scenarios": [
|
||
{
|
||
"lang": "en",
|
||
"value": "GENERAL"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"problemTypes": [
|
||
{
|
||
"descriptions": [
|
||
{
|
||
"cweId": "CWE-787",
|
||
"description": "CWE-787 Out-of-bounds Write",
|
||
"lang": "en",
|
||
"type": "CWE"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"providerMetadata": {
|
||
"orgId": "14ed7db2-1595-443d-9d34-6215bf890778",
|
||
"shortName": "Google",
|
||
"dateUpdated": "2025-10-06T08:08:46.060Z"
|
||
},
|
||
"references": [
|
||
{
|
||
"url": "https://issuetracker.google.com/433513232"
|
||
}
|
||
],
|
||
"source": {
|
||
"discovery": "EXTERNAL"
|
||
},
|
||
"title": "Heap-buffer-overflow read in FFmpeg DHAV get_duration",
|
||
"x_generator": {
|
||
"engine": "Vulnogram 0.2.0"
|
||
}
|
||
},
|
||
"adp": [
|
||
{
|
||
"metrics": [
|
||
{
|
||
"other": {
|
||
"type": "ssvc",
|
||
"content": {
|
||
"timestamp": "2025-10-06T16:25:07.013593Z",
|
||
"id": "CVE-2025-59729",
|
||
"options": [
|
||
{
|
||
"Exploitation": "none"
|
||
},
|
||
{
|
||
"Automatable": "no"
|
||
},
|
||
{
|
||
"Technical Impact": "partial"
|
||
}
|
||
],
|
||
"role": "CISA Coordinator",
|
||
"version": "2.0.3"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"title": "CISA ADP Vulnrichment",
|
||
"providerMetadata": {
|
||
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
|
||
"shortName": "CISA-ADP",
|
||
"dateUpdated": "2025-10-06T16:28:37.534Z"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
} |