{ "dataType": "CVE_RECORD", "dataVersion": "5.1", "cveMetadata": { "cveId": "CVE-2025-59730", "assignerOrgId": "14ed7db2-1595-443d-9d34-6215bf890778", "state": "PUBLISHED", "assignerShortName": "Google", "dateReserved": "2025-09-19T08:11:37.550Z", "datePublished": "2025-10-06T08:09:11.029Z", "dateUpdated": "2025-10-06T16:23:59.447Z" }, "containers": { "cna": { "affected": [ { "collectionURL": "https://git.ffmpeg.org/ffmpeg.git", "defaultStatus": "unaffected", "packageName": "SANM", "product": "FFmpeg", "repo": "https://git.ffmpeg.org/ffmpeg.git", "vendor": "FFmpeg", "versions": [ { "lessThan": "8.0", "status": "affected", "version": "829680f96a7a7ff02d1543895ec0fb713309d5c0", "versionType": "custom" } ] } ], "credits": [ { "lang": "en", "type": "finder", "value": "Google Big Sleep" } ], "datePublic": "2025-07-27T22:00:00.000Z", "descriptions": [ { "lang": "en", "supportingMedia": [ { "base64": false, "type": "text/html", "value": "
When decoding a frame for a SANM file (ANIM v0 variant), the decoded data can be larger than the buffer allocated for it.
Frames encoded with codec 48 can specify their resolution (width x height). A buffer of appropriate size is allocated depending on the resolution.
This codec can encode the frame contents using a run-length encoding algorithm. There are no checks that the decoded frame fits in the allocated buffer, leading to a heap-buffer-overflow.
process_frame_obj initializes the buffers based on the frame resolution: