{"id":"OESA-2026-3542","summary":"ffmpeg security update","details":"FFmpeg is a complete and free Internet live audio and video broadcasting solution for Linux/Unix. It also includes a digital VCR. It can encode in real time in many formats including MPEG1 audio and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash.\r\n\r\nSecurity Fix(es):\n\nAn improper resource deallocation and closure vulnerability in the tools/zmqsend.c component of FFmpeg v8.0.1 allows attackers to cause a Denial of Service (DoS) via supplying a crafted input file.(CVE-2026-30998)\n\nFFmpeg&apos;s RASC video decoder (decode_dlta in libavcodec/rasc.c) performs 32-bit reads and writes at the row cursor before the NEXT_LINE row-boundary check and validates the DLTA region in pixel rather than byte units, so a DLTA run on a PAL8 frame can access several bytes past the row allocation. A crafted media stream using the RASC FourCC, decoded by libavcodec, triggers a bitstream-controlled out-of-bounds heap write and adjacent out-of-bounds read, leading to memory corruption.(CVE-2026-58049)\n\nFFmpeg versions 2.1 through 8.1.2 contains a heap buffer overflow vulnerability in the VobSub subtitle demuxer that allows attackers to corrupt adjacent heap memory by supplying a malicious .sub/.idx subtitle file declaring more distinct stream IDs than the fixed-size array bounds in libavformat/mpeg.c. Attackers can craft a subtitle file with excessive distinct stream IDs to trigger unbounded writes beyond the vobsub-&gt;q[] array boundary via ff_subtitles_queue_insert(), potentially achieving arbitrary code execution in any application using FFmpeg&apos;s VobSub demuxer.(CVE-2026-64830)\n\nFFmpeg versions 8.0 through 8.1.2 contains a stack buffer overflow vulnerability in the Vulkan HEVC hardware decoder that allows remote attackers to overwrite return addresses and adjacent stack frames by supplying a crafted HEVC/H.265 bitstream. Attackers can embed a malicious vps_num_hrd_parameters value exceeding HEVC_MAX_SUB_LAYERS in any supported container format to overflow stack-allocated arrays in the vk_hevc_end_frame function, potentially achieving arbitrary code execution.(CVE-2026-64831)\n\nFFmpeg versions 4.4 through 8.1.2 contain a double-free vulnerability in the NVIDIA NVDEC hardware decoder within libavcodec/nvdec.c that allows attackers to trigger memory corruption by supplying a crafted video file. When no decoder surfaces remain, the ff_nvdec_start_frame_sep_ref error path frees memory via nvdec_fdd_priv_free while the calling layer subsequently frees the same frame description data, resulting in a double-free of the underlying decoder context in any FFmpeg-based application using NVDEC hardware-accelerated decoding.(CVE-2026-64832)\n\nFFmpeg versions 0.7.1 through 8.1.2 contain an out-of-bounds read vulnerability in the S/PDIF muxer that allows attackers to access memory beyond buffer boundaries by supplying a crafted DTS stream with a core_size value larger than the actual packet length. Attackers can exploit the missing bounds check in the spdif_header_dts4 function by providing a malicious DTS-HD audio stream during S/PDIF re-muxing to trigger unauthorized memory reads beyond the packet buffer.(CVE-2026-64833)\n\nFFmpeg versions 0.6.3 through 8.1.2 contain an infinite loop vulnerability in the RTP/ASF demuxer within libavformat/rtpdec_asf.c that allows remote attackers to cause denial of service by sending a crafted RTP/ASF stream. The rtp_asf_fix_header function fails to validate a minimum chunksize when iterating over ASF objects, causing the loop pointer to never advance when a chunksize is smaller than the 24-byte minimum ASF object header size, resulting in CPU exhaustion that denies service to legitimate users.(CVE-2026-64834)\n\nFFmpeg versions 4.4 through 8.1.2 contain an out-of-bounds memory access vulnerability in the ADX audio decoder within libavcodec/adxdec.c that allows attackers to trigger both out-of-bounds reads and writes by supplying a crafted ADX or AAX audio file with a mid-stream channel layout change. When AV_PKT_DATA_NEW_EXTRADATA side data is received mid-stream, the adx_decode_frame function re-parses the stream header but fails to update the internal channel state, causing subsequent decoding operations to access the prev[] state array using a stale channel count.(CVE-2026-64835)\n\nFFmpeg versions 2.7 through 8.1.2 contain an out-of-bounds write vulnerability in the TDSC video decoder that allows remote attackers to cause heap corruption by supplying a crafted AVI file that changes frame dimensions across TDSF frames. The tdsc_parse_tdsf() function fails to unreference the existing reference frame before calling av_frame_get_buffer(), causing tdsc_blit() and tdsc_yuv2rgb() to write attacker-controlled pixel data beyond the end of the undersized reference frame buffer, resulting in a process crash and potential code execution.(CVE-2026-65703)\n\nFFmpeg through 8.1.2 contains an out-of-bounds write vulnerability that allows attackers to cause heap corruption by supplying a crafted ffconcat file processed with the -safe 0 flag. The TY demuxer&apos;s demux_audio() function decrements packet size without bounds checking, producing a negative size value that is passed to memcpy() in shorten_decode_frame(), where conversion to size_t wraps the value to near SIZE_MAX and triggers reads beyond the source allocation and writes far beyond the Shorten decoder&apos;s bitstream buffer.(CVE-2026-65704)\n\nFFmpeg versions 3.4 through 8.1.2 contain an out-of-bounds write vulnerability in the vf_floodfill video filter that allows attackers to corrupt heap memory by supplying a dynamically sized video stream with filtergraph reinitialization disabled via -reinit_filter 0. When config_input() allocates the points traversal stack based on initial frame dimensions and a subsequent larger frame is processed, filter_frame() performs flood-fill neighbor pushes beyond the original allocation boundary, resulting in heap corruption and process crash with potential for code execution depending on heap layout and process hardening.(CVE-2026-65705)\n\nFFmpeg versions 3.0 through 8.1.2 contain an out-of-bounds write vulnerability in the vf_swaprect video filter that allows attackers to corrupt heap memory by supplying a crafted NV12 video frame with odd width dimensions. The filter_frame() function reuses a temporary row buffer sized for plane 0&apos;s single-byte pixel step across all planes, causing an 18-byte memcpy into a 17-byte heap allocation when processing the two-byte-per-sample interleaved chroma plane of a 17x16 NV12 frame, resulting in heap corruption and process crash with potential for code execution.(CVE-2026-65706)\n\nFFmpeg through 8.1.2, fixed in commit 5d7112c, contains a heap out-of-bounds write vulnerability in the vf_hqdn3d filter that allows attackers to corrupt heap memory by supplying a crafted video whose frame resolution increases between frames when filtergraph reinitialization is disabled via the -reinit_filter 0 option. Attackers can provide a malicious video input where vf_hqdn3d.config_input() allocates undersized per-plane line-history buffers based on the initial frame width, and subsequent larger frames cause denoise_spatial() to write beyond the allocation boundary, resulting in heap memory corruption.(CVE-2026-66036)\n\nFFmpeg through 8.1.2, fixed in commit 8670835, contains an information disclosure vulnerability in the LCL/ZLIB video decoder that allows attackers to expose uninitialized heap memory by supplying a valid zlib stream that inflates to fewer bytes than the expected frame size. The zlib_decomp() function in lcldec.c treats short decompression as non-fatal and continues to the RGB24 conversion path, which copies a full frame&apos;s worth of rows from the allocation buffer using original frame dimensions, causing uninitialized heap contents including pointer-derived allocator bytes to be copied into the attacker-observable AVFrame output and potentially defeating ASLR in long-lived media processing services.(CVE-2026-66038)\n\nFFmpeg through 8.1.2, fixed in commit aafb5c6, contains a signed integer overflow vulnerability in the MACE6 audio decoder that allows attackers to corrupt heap memory by supplying a crafted CAF file with a malicious bytes_per_packet value. Attackers can craft a CAF file with oversized bytes_per_packet and frames_per_packet values in the desc chunk to trigger an integer overflow in mace_decode_frame() during output sample count computation, resulting in an undersized buffer allocation and heap out-of-bounds write that could enable code execution.(CVE-2026-66039)\n\nFFmpeg 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-&gt;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.(CVE-2026-70630)\n\nFFmpeg before commit acf5d7c contains a heap buffer overflow in the hvcC box writer. When writing an HEVC configuration record with more NAL units of a single type than the count field can represent, the NAL unit count overflows, causing a heap buffer overflow. A crafted HEVC input file triggers the overflow during muxing.(CVE-2026-75141)\n\nFFmpeg before commit 9d786e4 contains a stack buffer overflow in the MPEG-PS muxer (libavformat/mpegenc.c). When muxing input with more streams than the muxer&apos;s fixed-size stack buffer accommodates, the buffer is overflowed. A crafted input with an excessive number of streams triggers the overflow during MPEG-PS muxing.(CVE-2026-75142)\n\nFFmpeg before commit 1c10bcc contains a heap buffer overflow in the RIST protocol reader (libavformat/librist.c). librist_read() ignored its size argument and copied the full received payload length into the caller-provided destination buffer, overflowing it when the payload exceeds the destination size. This is reachable via the async:rist:// URL scheme, where the async wrapper supplies a smaller buffer than the received payload. A remote RIST sender can trigger the overflow by sending a packet whose payload exceeds the caller buffer size.(CVE-2026-75143)\n\nFFmpeg before commit 1cdeb3c contains a heap buffer overflow vulnerability in the VC-2/Dirac RTP packetizer (libavformat/rtpenc_vc2hq.c) that allows attackers to trigger memory corruption by supplying a crafted Dirac data unit. The packetizer copies an input-derived data unit or fragment size into a fixed-size buffer without an upper bound check, causing a heap buffer overflow when the crafted input is packetized for RTP output.(CVE-2026-75144)\n\nFFmpeg before commit 65b0dab contains an out-of-bounds read in the DASH demuxer (libavformat/dashdec.c). When a live DASH manifest is refreshed with a startNumber that is lower than the previous value, the current sequence number is driven negative. The fragment retrieval function checked only the upper bound before indexing the fragments array, allowing a negative index to be used and causing an out-of-bounds read. A malicious or misconfigured DASH server can trigger this by serving a live manifest with a decreasing startNumber across a manifest refresh.(CVE-2026-75146)","modified":"2026-08-30T04:32:02.981012274Z","published":"2026-08-30T04:15:52Z","upstream":["CVE-2026-30998","CVE-2026-58049","CVE-2026-64830","CVE-2026-64831","CVE-2026-64832","CVE-2026-64833","CVE-2026-64834","CVE-2026-64835","CVE-2026-65703","CVE-2026-65704","CVE-2026-65705","CVE-2026-65706","CVE-2026-66036","CVE-2026-66038","CVE-2026-66039","CVE-2026-70630","CVE-2026-75141","CVE-2026-75142","CVE-2026-75143","CVE-2026-75144","CVE-2026-75146"],"database_specific":{"severity":"Critical"},"references":[{"type":"ADVISORY","url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3542"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-30998"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-58049"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64830"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64831"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64832"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64833"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64834"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64835"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-65703"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-65704"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-65705"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-65706"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-66036"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-66038"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-66039"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-70630"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-75141"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-75142"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-75143"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-75144"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-75146"}],"affected":[{"package":{"name":"ffmpeg","ecosystem":"openEuler:24.03-LTS-SP1","purl":"pkg:rpm/openEuler/ffmpeg&distro=openEuler-24.03-LTS-SP1"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.1.1-47.oe2403sp1"}]}],"ecosystem_specific":{"x86_64":["ffmpeg-6.1.1-47.oe2403sp1.x86_64.rpm","ffmpeg-debuginfo-6.1.1-47.oe2403sp1.x86_64.rpm","ffmpeg-debugsource-6.1.1-47.oe2403sp1.x86_64.rpm","ffmpeg-devel-6.1.1-47.oe2403sp1.x86_64.rpm","ffmpeg-libs-6.1.1-47.oe2403sp1.x86_64.rpm","libavdevice-6.1.1-47.oe2403sp1.x86_64.rpm"],"aarch64":["ffmpeg-6.1.1-47.oe2403sp1.aarch64.rpm","ffmpeg-debuginfo-6.1.1-47.oe2403sp1.aarch64.rpm","ffmpeg-debugsource-6.1.1-47.oe2403sp1.aarch64.rpm","ffmpeg-devel-6.1.1-47.oe2403sp1.aarch64.rpm","ffmpeg-libs-6.1.1-47.oe2403sp1.aarch64.rpm","libavdevice-6.1.1-47.oe2403sp1.aarch64.rpm"],"src":["ffmpeg-6.1.1-47.oe2403sp1.src.rpm"]},"database_specific":{"source":"https://repo.openeuler.org/security/data/osv/OESA-2026-3542.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}