CVE-2026-56711: VLC media player 3.0.0 through 3.0.23 Heap Out-of-Bounds Write via Integer Overflow in Picture Allocation
VLC media player computes the size of a picture buffer with 32-bit arithmetic and allocates from the wrapped result. In AllocatePicture in src/misc/picture.c the running total is accumulated as ibytes += p->ipitch p->ilines, and both planet fields are declared int in include/vlcpicture.h, so the multiplication is evaluated at 32 bits and wraps before it is widened to the sizet accumulator. The overflow check that precedes it divides in 64-bit arithmetic and therefore does not constrain the product, and the subsequent comparison against PICTURESWSIZEMAX examines the already wrapped value, so both guards pass. alignedalloc then reserves the small wrapped size while the decoder writes scanlines sized from the original dimensions. A crafted PNG whose IHDR declares large width and height reaches this path through the image demuxer, whose only size guard is on the input file's byte count rather than the declared dimensions, and the decoder in modules/codec/png.c writes past the end of the allocation with attacker-influenced length and content. Opening the file directly or through a playlist entry is sufficient, with no non-default settings.
Affected Software
Event History
Frequently Asked Questions
Are default VLC installations affected?
Yes. The issue can be reached with no non-default settings when VLC opens a crafted PNG directly or through a playlist entry.
What does an attacker need to do to trigger the flaw?
An attacker needs to provide a crafted PNG with large width and height values in its IHDR header and convince a user to open it, either directly or through a playlist entry. No prior privileges are required.
Which installations should be considered affected?
VLC media player versions 3.0.0 through 3.0.23 are identified as affected. The vulnerable path is used by the image demuxer and PNG decoder.
What can be done before an update is available?
Avoid opening PNG files from untrusted sources in VLC, including PNG files referenced by playlists. The stated trigger depends on VLC processing attacker-controlled PNG dimensions.