Follow @Openwall on Twitter for new release announcements and other news
[<prev] [day] [month] [year] [list]
Message-ID: <trinity-f0c764a0-155b-4f5a-9f35-66355719ae9b-1794429648968@trinity-msg-rest-gmx-gmx-live-6b6d8476df-5b7ht>
Date: Wed, 11 Nov 2026 20:40:49 +0000
From: "Alexander A. Shvedov" <sigdevel@...amail.com>
To: oss-security@...ts.openwall.com
Subject: CVE-2026-124308: VVdeC/vvdecapp: Heap Use-After-Free in
 DecLibRecon::createSubPicRefBufs during Subpicture Reconstruction

Product:   VVdeC (vvdecapp)
Affected:  Versions before 3.2.1
           Reproduced build: 3.3.0-dev
           Commit e493ce51f13a2dea72cd58354652ed4e0f509a0e
Fixed:     8a0def8ba6050412d33e69a6f1e66e287b039083
CVE:       CVE-2026-124308
CWE:       CWE-416 (Use After Free)
CVSS 3.1:  5.8 MEDIUM (AV:L/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:H)
Reporter:  Alexander A. Shvedov (@sigdevel)

Description:
  Subpicture border-extension tasks retain raw pointers into the
  m_subPicExtTasks vector. DecLibRecon::decompressPicture() clears or
  reallocates this vector without ensuring that pending worker tasks have
  finished. A worker can then dereference a stale SubPicExtTask pointer in
  DecLibRecon::createSubPicRefBufs() at DecoderLib/DecLibRecon.cpp:409. The
  supplied ASan report shows an eight-byte read from a freed 28672-byte
  allocation.

  A crafted multi-subpicture VVC bitstream triggers this timing-dependent
  failure. Local bug 11 (upstream issue #403) reports a continuation after
  the initial PR #393 change; both reports are covered by the same CVE.

Impact:
  Processing an attacker-controlled VVC bitstream can crash vvdecapp or an
  application using the VVdeC library, causing denial of service. The use-
  after-free is a memory-safety violation; arbitrary code execution was not
  demonstrated in the supplied evidence.

Reproduction:
  Build VVdeC with AddressSanitizer (VVDEC_USE_ADDRESS_SANITIZER=ON,
  VVDEC_FUZZING_BUILD=ON), then run with the linked sample:

    ./vvdecapp -b ./3_createSubPicRefBufs_DecoderLib_DecLibRecon_cpp_409 -t 3

ASan log excerpt (abbreviated):
  ==544885==ERROR: AddressSanitizer: heap-use-after-free on address 0x7e97f6de02a8
  READ of size 8 at 0x7e97f6de02a8 thread T1
    #0 in vvdec::DecLibRecon::createSubPicRefBufs DecoderLib/DecLibRecon.cpp:409:10
    #1 in vvdec::DecLibRecon::createSubPicRefBufs DecoderLib/DecLibRecon.cpp:406:24

Fix:
  Update to VVdeC 3.2.1 or apply the upstream fix referenced below. For the
  subpicture task lifetime issue, use the final task-ownership fix rather
  than relying on the initial PR #393 change.

    https://github.com/fraunhoferhhi/vvdec/releases/tag/v3.2.1

    https://github.com/fraunhoferhhi/vvdec/commit/8a0def8ba6050412d33e69a6f1e66e287b039083

PoC:
  https://github.com/sigdevel/pocs/blob/main/res/vvdec/vvdecapp/3/3_createSubPicRefBufs_DecoderLib_DecLibRecon_cpp_409

References:
  https://github.com/fraunhoferhhi/vvdec/issues/403
  https://github.com/fraunhoferhhi/vvdec/issues/392
  https://github.com/fraunhoferhhi/vvdec/commit/8a0def8ba6050412d33e69a6f1e66e287b039083
  https://www.vulncheck.com/advisories/fraunhofer-hhi-vvdec-before-3.2.1-use-after-free-via-declibrecon-createsubpicrefbufs
  https://www.cve.org/CVERecord?id=CVE-2026-124308
  https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2026/124xxx/CVE-2026-124308.json


——
Best regards, Alexander A. Shvedov
@sigdevel

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.