Bug 2544505

Summary: CVE-2026-56208 aom: libaom: heap buffer overflow in AV1 encoder first-pass stats buffer via LAP mode [fedora-all]
Product: [Fedora] Fedora Reporter: Tomas Hoger <thoger>
Component: aomAssignee: Multimedia SIG <multimedia-sig>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: high    
Version: rawhideCC: decathorpe, eclipseo, multimedia-sig, ngompa13
Target Milestone: ---Keywords: Security, SecurityTracking
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: {"flaws": ["8203d352-fdb8-4cfb-9f6c-92d1ac548085"]}
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2490799    

Description Tomas Hoger 2026-10-01 10:17:20 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

A heap buffer overflow (out-of-bounds write followed by out-of-bounds read) was found in libaom, the reference AV1 codec implementation by the Alliance for Open Media. The vulnerability exists in the AV1 encoder when an application sets g_lag_in_frames = 1.

The wrap-around guard for the first-pass stats ring buffer in update_firstpass_stats() (av1/encoder/firstpass.c) only fires when cpi->oxcf.pass == AOM_RC_FIRST_PASS, but Look-Ahead Processing (LAP) mode (enabled when g_lag_in_frames >= 1) runs as AOM_RC_ONE_PASS. As a result, the stats_in_end pointer is never wrapped and every frame after the second writes a 232-byte FIRSTPASS_STATS structure past the allocated 2-entry buffer, corrupting adjacent heap objects and their aom_memalign metadata.

Impact: Heap out-of-bounds write of 232-byte FIRSTPASS_STATS entries (29 fields of attacker-influenced floating-point/integer data) into the adjacent heap on every encoder frame after the 2nd, out-of-bounds read in find_next_scenecut(), and process crash via corrupted free() metadata in aom_codec_destroy(). Reachable from any application that exposes encoder configuration to untrusted input (e.g. transcoding services, browsers using libaom for WebRTC encode).

Affected: libaom v2.0.0 (first release shipping LAP support, commits 5517b28e1e and 4be6511843, Dec 2019) through v3.13.3
Fixed in: v3.14.0 by commit 243f8ae84b ("Handle buffer pointer in LAP mode to avoid overflow", BUG=aomedia:504317456, 2026-04-20)
Upstream report: https://issues.chromium.org/issues/504317456 (restricted)

Reporter: The FuzzAnything Team
PSIRT Ticket: PSIRTSUPT-17176