Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H
Network-delivered crafted bitstream, no auth, but requires the user to open the file (UI:R); OOB write yields integrity tampering and high availability impact with no direct confidentiality disclosure.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
libde265 is an open source implementation of the h.265 video codec. Prior to version 1.0.20, a crafted H.265 bitstream can cause an out-of-bounds array write in decoder_context::process_reference_picture_set() (libde265/decctx.cc:1376). The root cause is a missing aggregate bound check on predicted short-term reference picture set entries. Individual list sizes are validated, but the combined count after predicted RPS construction can exceed the 16-entry PocStFoll array, writing at index 16. Version 1.0.20 patches the issue.
AnalysisAI
Out-of-bounds write in libde265 prior to version 1.0.20 allows remote attackers to corrupt memory by tricking a user into processing a maliciously crafted H.265 bitstream. The flaw resides in the short-term reference picture set handling and can lead to denial of service or potential code execution in any application that links libde265 for HEVC decoding. No public exploit identified at time of analysis, though the upstream patch and commit-level root-cause disclosure provide a clear roadmap for exploit development.
Technical ContextAI
libde265 (cpe:2.3:a:strukturag:libde265) is a widely embedded open-source HEVC/H.265 video decoder used by media players, browsers, and image libraries such as libheif. The vulnerability is a classic CWE-787 out-of-bounds write triggered in decoder_context::process_reference_picture_set() at libde265/decctx.cc:1376. Per the upstream commit (691f3a3c), individual short-term reference picture lists are bounded, but the predicted-RPS construction appends the current-picture delta to an already-full source set, allowing the aggregate NumDeltaPocs to exceed MAX_NUM_REF_PICS (16). The decoder then writes at index 16 of the fixed-size PocStFoll array, corrupting adjacent memory in the decoder context structure.
RemediationAI
Vendor-released patch: libde265 1.0.20 - upgrade to this version, which adds an aggregate NumDeltaPocs > MAX_NUM_REF_PICS check in read_short_term_ref_pic_set() (commit 691f3a3c55b3d32478c4a49895dee061a282652b). Downstream packagers should rebuild dependents (libheif, GStreamer plugins, media apps) against the patched library and redistribute. If immediate upgrade is not feasible, compensating controls include blocking or sandboxing the rendering of untrusted HEVC/.heic/.h265 content at the email gateway and web proxy, running media-processing services under seccomp/AppArmor profiles that restrict syscalls, and disabling HEVC support in browsers or thumbnailers where it is not business-critical - with the trade-off of breaking legitimate HEVC playback for users. Reference the GHSA advisory at https://github.com/strukturag/libde265/security/advisories/GHSA-g2rg-wj66-w594.
Heap-based Buffer Overflow in GitHub repository strukturag/libde265 prior to and including 1.0.8. Rated critical severit
Libde265 v1.0.14 was discovered to contain a global buffer overflow vulnerability in the read_coding_unit function at sl
Libde265 v1.0.14 was discovered to contain a heap-buffer-overflow vulnerability in the derive_combined_bipredictive_merg
Libde265 v1.0.14 was discovered to contain a heap-buffer-overflow vulnerability in the derive_spatial_luma_vector_predic
Libde265 v1.0.11 was discovered to contain a heap buffer overflow via the function derive_collocated_motion_vectors at m
Libde265 v1.0.12 was discovered to contain multiple buffer overflows via the num_tile_columns and num_tile_row parameter
Libde265 v1.0.10 was discovered to contain a heap-buffer-overflow vulnerability in the derive_spatial_luma_vector_predic
Heap Buffer Overflow vulnerability in Libde265 v1.0.15 allows attackers to crash the application via crafted payload to
Libde265 v1.0.11 was discovered to contain a segmentation violation via the function decoder_context::process_slice_segm
libde265 v1.0.10 was discovered to contain a NULL pointer dereference in the mc_chroma function at motion.cc. Rated medi
Libde265 v1.0.8 was discovered to contain a heap-buffer-overflow vulnerability via put_unweighted_pred_16_fallback in fa
Libde265 v1.0.8 was discovered to contain a heap-buffer-overflow vulnerability via put_epel_16_fallback in fallback-moti
Same weakness CWE-787 – Out-of-bounds Write
View allSame technique Buffer Overflow
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38079