Sceawere
Vulnerability Detail
CVE-2026-70630UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
FFmpeg Screenpresso Uninitialized Heap Read
Vulnerability Metadata
- Severity
- Medium
- Score / CVSS
- 5.5
- Creation Date
- 1d ago
- Vendor
- FFmpeg
- Product
- FFmpeg
- Attack Type
- Use of Uninitialized Resource
- Vector String
- CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
- Attack Complexity
- LOW
Narrative and Response
Description
FFmpeg versions from 3.0 up to, but not including, 9.0 contain an uninitialized heap memory read vulnerability in the native Screenpresso decoder (libavcodec/screenpresso.c) that allows attackers to recover sensitive memory contents by supplying a crafted SPV1 packet with a valid zlib stream that decompresses fewer bytes than the full frame requires. The screenpresso_decode_frame() function fails to validate the produced byte count before calling av_image_copy_plane() to copy the complete frame dimensions from the persistent ctx->inflated_buf buffer, causing unwritten heap memory from prior allocations or prior frames to be copied into decoded output and potentially exposing sensitive data such as userspace addresses from persistent decoding services.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "5.5",
"pubDate": "2026-08-06T22:18:27.273Z",
"pubdate": "2026-08-06T22:18:27.273Z",
"executiveSummary": "An uninitialized heap memory read vulnerability exists in the native Screenpresso decoder of FFmpeg, specifically within the libavcodec/screenpresso.c file.\nThe vulnerability allows attackers to recover sensitive memory contents by supplying a crafted SPV1 packet containing a valid zlib stream that decompresses fewer bytes than the required full frame dimensions.\nThis flaw impacts FFmpeg versions from 3.0 up to, but not including, 9.0.\nThe primary risk implication is information disclosure, as unwritten heap memory from prior allocations or previous decoding frames is copied into the decoded output.\nPotential data leakage includes sensitive information such as userspace memory addresses harvested from persistent decoding services.\nAttackers require the capability to supply a specially crafted SPV1 packet to a system processing video streams using the vulnerable FFmpeg decoder.",
"technicalDetails": "The vulnerability resides in the screenpresso_decode_frame() function within the native Screenpresso decoder located at libavcodec/screenpresso.c.\nThe root cause of the issue is the failure of the screenpresso_decode_frame() function to properly validate the byte count produced by the zlib stream against the expected dimensions of the complete frame.\nSpecifically, when an attacker supplies a crafted SPV1 packet containing a valid zlib stream that decompresses into fewer bytes than the full frame requires, the decompression leaves portions of the persistent ctx->inflated_buf buffer unwritten.\nFollowing the partial decompression, the function calls av_image_copy_plane() to copy the complete frame dimensions from the persistent ctx->inflated_buf buffer into the decoded output buffer.\nBecause the output byte count validation is missing, av_image_copy_plane() copies both the valid decompressed data and the stale, uninitialized heap memory residing in the remainder of the persistent buffer from prior allocations or prior frames.\nThis behavior results in uninitialized heap memory being exposed in the decoded output frames.\nIn scenarios involving persistent decoding services, an attacker can leverage this vulnerability to repeatedly query the decoder and extract sensitive data, including userspace addresses and remnants of previous processing sessions.\nThe vulnerability affects FFmpeg versions ranging from 3.0 up to, but not excluding, 9.0.\nExploitation requires no authentication or special privileges other than the ability to provide a malicious SPV1 packet to the decoding pipeline, making it viable via network exposure or local file ingestion depending on the application architecture."
}