Debian Patches

Status for libde265/1.0.15-1+deb13u1

Patch Description Author Forwarded Bugs Origin Last update
CVE-2026-49346.patch CVE-2026-49346: fix integer overflow in image plane allocation size Large SPS dimensions with 16-bit bit depth overflow the 32-bit allocation
size in de265_image_get_buffer(); the wrapped ~1 KB allocation is later
written with the full plane size, corrupting the heap.

diff --git a/libde265/image.cc b/libde265/image.cc
index 0ae77511..9ddfed2c 100644
yes debian upstream upstream, https://github.com/strukturag/libde265/commit/8a1b5cf212f78e1c77cb46eb5d56e492a9336eb8
only_export_decoder_api.patch Only export symbols defined in the decoder API. The encoder API is not final yet, so upstream exports all symbols to make
development easier. For packaging we only want to expose the public API.
Joachim Bauch <bauch@struktur.de> no
disable_tools.patch Disable building of some internal tools that no longer link because internal symbols are no longer exported. Joachim Bauch <bauch@struktur.de> no
reject_reference_pics_from_different_sps.patch Try to mitigate asan failures.
See #345 for my analysis and details…

(This PR is just for discussion.)

(The CVE references are obtained from the Debian security tracker,
which links the issues.)

This makes the following POCs stop failing:

- poc3 (#337)
- poc7-1 (#341) CVE-2022-43239 (note: does NOT fix poc7-2)
- poc8-2, poc8-3, poc8-4 (#342) CVE-2022-43244 (note: does NOT fix poc8-1)
- poc11-1, poc11-2 (#345) CVE-2022-43249
- poc12 (#346)
- poc13 (#347) CVE-2022-43252
- poc16 (#350)
Tobias Frost <tobi@debian.org> no https://github.com/strukturag/libde265/pull/365 2022-12-12
use_sps_from_the_image.patch Use the sps from the image
(as e.g mc_chroma is using the sps to determine
picture properties, like pic_width_in_luma_samples
and pic_height_in_luma_samples, I *think* this is
more correct.

This PR is for discussion. (See #345.)
It makes the failures go away, but that does not mean it's correct :)

The following poc will be stop failing if (only) this
patch is applied:

- poc2 #336 - CVE-2022-43238
- poc4 #338 - CVE-2022-43241
- poc6-1, poc6-2 #340 - CVE-2022-43242
- poc7-1, poc7-2 #341 - CVE-2022-43239
- poc8-1 #342 - CVE-2022-43244
- poc9-3 #343 - CVE-2022-43236
- poc10-2, poc10-3 #344 - CVE-2022-43237
- poc16 #350
- poc19 #353

The following are still failing if only this patch is
applied, but they stop failing if #365 is applied as well, but will
still fail with ONLY #365 applied (IOW, both are needed)

- poc1 #335 - CVE-2022-43240
- poc3 #337 - CVE-2022-43235
- poc5 #339 - CVE-2022-43423
- poc9-1,poc9-2, poc9-4 #343 - CVE-2022-43236
- poc14 #348 - CVE-2022-43253
- poc15 #349 - CVE-2022-43248
- poc17-1, poc17-2 #351
- poc18 #352 - CVE-2022-43245
Tobias Frost <tobi@debian.org> no https://github.com/strukturag/libde265/pull/366 2022-12-12
recycle_sps_if_possible.patch Don't update sps if they are only repeated
This is an attempt to improve the mitigations from #365 and #366 and picks up an idea I described at #345:

> One way would be just to look at the pointers of the SPS (fast and easy, but
> may reject more than required), or investigate if the SPS used for the image
> generations are "compatible".

This changes do exactly this: It (very conservativly) checks if the old and new sps have
identical information -- except the reference picture set, which I believe is supposed
to be updated by new sps'). If they are basically identical, the old sps will be
used instead of the new one, (of course, reference image set is updated from the new one)

I'm using standalone operator== and helper functions to avoid changing ABI of the library;
if an ABI bump would be done, of course this should go to the respective classes.
Tobias Frost <tobi@debian.org> no https://github.com/strukturag/libde265/pull/372 2023-01-13
fix-private-libs-pc.patch Fix missing "LIBS_PRIVATE" for libde265.pc in autoconf builds. Joachim Bauch <bauch@struktur.de> yes 2023-12-21
CVE-2025-61147.patch CVE-2025-61147: check for valid integer command line parameters Invalid numeric arguments (e.g. for --framedrop) made dec265 crash with a
segmentation fault in decoder_context::compute_framedrop_table().

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6066e9ff..b757ba1d 100644
yes debian upstream upstream, https://github.com/strukturag/libde265/commit/8b17e0930f77db07f55e0b89399a8f054ddbecf7
CVE-2024-38949_CVE-2024-38950.patch CVE-2024-38949, CVE-2024-38950: fix SDL OOB in dec265 display path Heap buffer overflow in the dec265 SDL output on 4:4:4 streams
(display444as420) and on mid-stream resolution changes.

diff --git a/dec265/dec265.cc b/dec265/dec265.cc
index ecf5d131..708408b9 100644
yes debian upstream upstream, https://github.com/strukturag/libde265/commit/4089de0845e0009e019be4ca5cbebaf2aee0a8ce
CVE-2026-45382.patch CVE-2026-45382: fix CTB OOB access when pps.sps mismatches active sps Malformed PPS data creates an out-of-bounds index into the CtbAddrRStoTS
array, causing a heap-buffer-overflow read in decode_slice_unit_tiles.

diff --git a/libde265/decctx.cc b/libde265/decctx.cc
index 7c758fcb..ea2e2136 100644
yes upstream upstream, https://github.com/strukturag/libde265/commit/c33b4f63ae9056b00f34a31874fed55cd0aa29c9
CVE-2026-45383.patch CVE-2026-45383: prevent reading past end of CtbAddrRStoTS[] in WPP images In the WPP slice decoder ctbAddrRS = ctbRow * ctbsWidth can exceed the
allocated vector size, causing out-of-bounds reads.

diff --git a/libde265/decctx.cc b/libde265/decctx.cc
index ea2e2136..ed8709d8 100644
yes upstream upstream, https://github.com/strukturag/libde265/commit/d1a2c3b4b751d21f44e8e82220fe9766c9d116ff
CVE-2026-49337.patch CVE-2026-49337: free orphaned slice header when no active image unit Slice headers attached to finished pictures without an active image unit
were retained forever; a crafted NAL sequence can grow memory without
bound during continuous streaming.

diff --git a/libde265/decctx.cc b/libde265/decctx.cc
index ed8709d8..8383dd2b 100644
yes debian upstream upstream, https://github.com/strukturag/libde265/commit/683cb9fa603e35840642f98765ab95cdb71cadf9
CVE-2026-49295.patch CVE-2026-49295: bound aggregate short-term RPS size Missing aggregate bound check on predicted reference picture set entries
allows exceeding the 16-entry array, an out-of-bounds array write in
process_reference_picture_set().

diff --git a/libde265/refpic.cc b/libde265/refpic.cc
index 77cc719e..ab7de2a6 100644
yes debian upstream upstream, https://github.com/strukturag/libde265/commit/691f3a3c55b3d32478c4a49895dee061a282652b
CVE-2026-54240_CVE-2026-54241.patch CVE-2026-54240, CVE-2026-54241: fix pixel-accessor integer overflow The image pixel accessors computed xpos + ypos*stride in signed 32-bit
arithmetic; frames with width*height > INT32_MAX wrap the offset and the
returned pointer lands far outside the buffer (OOB read/write). Widen
stride/offset math to 64 bits and store validated SPS dimensions in
uint16_t.

diff --git a/libde265/de265.cc b/libde265/de265.cc
index 6ff01918..571ed06b 100644
yes upstream upstream, https://github.com/strukturag/libde265/commit/bdca87569b9c63c2a7054d90ae4462dbb78d159a

All known versions for source package 'libde265'

Links