CVE-2026-70630
Description
A flaw was found in FFmpeg. An uninitialized heap memory read vulnerability in the native Screenpresso decoder allows attackers to recover sensitive memory contents. This occurs when a crafted SPV1 packet with a valid zlib stream is supplied, causing the screenpresso_decode_frame() function to fail in validating the produced byte count. Consequently, unwritten heap memory from prior allocations or frames can be copied into decoded output, potentially exposing sensitive data.
Statement
An uninitialized heap memory disclosure flaw exists in FFmpeg's Screenpresso decoder within libavcodec/screenpresso.c. When decoding a crafted SPV1 packet containing a truncated zlib stream, screenpresso_decode_frame() fails to validate the decompressed byte length before invoking av_image_copy_plane(). Consequently, unwritten heap memory from prior allocations in ctx->inflated_buf is copied directly into rendered frame output. When FFmpeg operates in persistent or shared-process services, processing untrusted media can expose sensitive memory contents, posing a Moderate impact to confidentiality.
Mitigation
Avoid decoding untrusted Screenpresso (SPV1) media files using FFmpeg in persistent services. If processing untrusted input is required, run FFmpeg inside an ephemeral container or restricted systemd sandbox to prevent sensitive cross-session heap data disclosure.
Common Vulnerability Scoring System (CVSS) Score Details
Info alert:Important note
CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).
The following CVSS metrics and score provided are preliminary and subject to review.
CVSS v3 Score Breakdown
| Red Hat | NVD | cve.org | |
|---|---|---|---|
| Base Score | 5.5 | N/A | 5.5 |
| Attack Vector | Local | N/A | Local |
| Attack Complexity | Low | N/A | Low |
| Privileges Required | None | N/A | None |
| User Interaction | Required | N/A | Required |
| Scope | Unchanged | N/A | Unchanged |
| Confidentiality | High | N/A | High |
| Integrity Impact | None | N/A | None |
| Availability Impact | None | N/A | None |
Vector
Red Hat: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
cve.org: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
Understanding the Weakness (CWE)
Confidentiality
Technical Impact: Read Memory
If the uninitialized pointer is used in a read operation, an attacker might be able to read sensitive portions of memory.
Availability
Technical Impact: DoS: Crash, Exit, or Restart
If the uninitialized pointer references a memory location that is not accessible to the product, or points to a location that is "malformed" (such as NULL) or larger than expected by a read or write operation, then a crash may occur.
Integrity,Confidentiality,Availability
Technical Impact: Execute Unauthorized Code or Commands
If the uninitialized pointer is used in a function call, or points to unexpected data in a write operation, then code execution may be possible.
Frequently Asked Questions
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.