Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H
Network-delivered media parsed with one user action, no auth, no special prerequisites; heap OOB write makes availability High and plausibly leaks/alters memory, so C and I set to Low.
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.1.0, a crafted H.265 bitstream with large SPS dimensions and 16-bit bit depth causes a signed integer overflow in de265_image_get_buffer() (libde265/image.cc:128). The overflow wraps the plane allocation size to a small value (~1 KB), but the subsequent fill_image() call computes the real size using size_t, writing ~4 GB into the undersized heap buffer. Version 1.1.0 patches the issue.
AnalysisAI
Heap buffer overflow in libde265 prior to version 1.1.0 allows remote attackers to corrupt heap memory and likely achieve code execution by tricking a user into processing a crafted H.265 video stream. The flaw stems from a 32-bit signed integer overflow in plane allocation sizing that wraps to ~1 KB, after which fill_image() writes the true ~4 GB plane content into the undersized buffer. No public exploit identified at time of analysis, but the upstream commit (8a1b5cf) and GHSA-vv8h-932h-7r86 publicly document the exact overflow location.
Technical ContextAI
libde265 (cpe:2.3:a:strukturag:libde265) is a widely embedded open-source HEVC/H.265 decoder used by image viewers, browsers, and media frameworks (e.g., libheif consumers). The root cause is CWE-190 (Integer Overflow or Wraparound): in libde265/image.cc, de265_image_get_buffer() computed plane sizes as int luma_height * luma_bpl using 32-bit signed arithmetic before passing the result to ALLOC_ALIGNED_16(). For SPS dimensions large enough combined with 16-bit bit depth (BitDepth_Y/C of 16, doubling bytes-per-line), the product exceeds INT32_MAX and wraps to a small positive value (~1 KB). The subsequent fill_image() path computes the same product in size_t, so it writes the genuine multi-gigabyte plane into the truncated allocation, producing a classic undersized-heap-buffer overflow. The patch (commit 8a1b5cf) promotes stride, height, and bytes-per-line to uint32_t and casts each multiplication to size_t before allocation and memcpy.
RemediationAI
Upgrade libde265 to vendor-released patch version 1.1.0, which fixes the integer overflow in de265_image_get_buffer() by widening stride/height to uint32_t and casting allocation and memcpy size computations to size_t (commit https://github.com/strukturag/libde265/commit/8a1b5cf212f78e1c77cb46eb5d56e492a9336eb8; advisory https://github.com/strukturag/libde265/security/advisories/GHSA-vv8h-932h-7r86). Operators of distributions and applications that bundle libde265 should rebuild and ship 1.1.0 (or backport the patch) for libheif, image viewers, browsers, and HEIF thumbnailers. Where immediate upgrade is impossible, compensating controls include disabling HEIF/HEVC decoding in affected client applications, removing or disabling OS-level HEIC thumbnail handlers (trade-off: loss of HEIC preview), blocking HEVC/HEIF MIME types at mail and web gateways (trade-off: legitimate HEIC mail/web content is rejected), and enforcing sandboxing of decoder processes to contain the heap corruption.
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-190 – Integer Overflow or Wraparound
View allSame technique Buffer Overflow
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38080