Cloudanix VulnDB

CVE-2023-54143

None

CVSS

—

EPSS

0.2%

Published

Dec 24, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A coding error in the Linux kernel's handling of certain video errors on specific chips could let a local attacker cause crashes or memory problems under rare conditions.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Theoretical
Impact
Denial Of Service
Component
OS kernel
Class
Memory Corruption
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

Improper error handling in vdec_msg_queue_init() leaves wdma_addr.size uninitialized or fails to release DMA resources on allocation failure, creating inconsistent state that can lead to use-after-free or memory corruption in the Mediatek video decoder path.

Why it matters to the business

Affected Linux systems performing media decoding may suffer kernel crashes, resource leaks, or local memory corruption; the issue is confined to specific hardware and error conditions with no observed in-the-wild exploitation or ransomware use.

How an attack unfolds

An attacker with local access forces repeated allocation failures during vdec_msg_queue_init() to hit the unhandled error paths, leaving the message queue in a partially initialized state that subsequent operations can leverage for corruption or information disclosure.

How to fix it

Apply the upstream fix by updating to a kernel containing commit 858322c409e0aba8f70810d23f35c482744f007c; rebuild and reboot with the corrected vcodec driver that properly sets wdma_addr.size=0 and uses goto mem_alloc_err on all error paths.

How to confirm the fix worked

Confirm the patched source contains the explicit msg_queue->wdma_addr.size=0 assignment before the first allocation failure return and that the two additional error paths now jump to mem_alloc_err; test by injecting allocation failures during queue init and verifying clean deinit.

Typical attack path

  1. Obtain local code execution on a system with Mediatek video codec enabled
  2. Trigger memory pressure or allocation failures to reach error paths in vdec_msg_queue_init()
  3. Bypass the missing size=0 assignment and missing goto cleanup
  4. Reuse the inconsistent msg_queue state in later decoder operations to corrupt kernel memory

How to detect it

Search kernel logs for oops or warnings mentioning vdec_msg_queue_init or mediatek vcodec around allocation failures; inspect for repeated DMA resource warnings without corresponding deinit messages.

What your security team should do

  • Prioritize kernel updates on any systems using Mediatek video hardware within the next maintenance window
  • Review kernel configuration to disable unused mediatek vcodec modules where possible
  • Monitor vendor advisories for backported fixes in distribution kernels

The record

In the Linux kernel, the following vulnerability has been resolved: media: mediatek: vcodec: fix resource leaks in vdec_msg_queue_init() If we encounter any error in the vdec_msg_queue_init() then we need to set "msg_queue->wdma_addr.size = 0;". Normally, this is done inside the vdec_msg_queue_deinit() function. However, if the first call to allocate &msg_queue->wdma_addr fails, then the vdec_msg_queue_deinit() function is a no-op. For that situation, just set the size to zero explicitly and return. There were two other error paths which did not clean up before returning. Change those error paths to goto mem_alloc_err.

Affected packages

Ecosystem Package Introduced Fixed
Linux Kernel 5.18.0 6.1.53
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_19 0 1-150600.13.3.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-64kb 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-default-base 0 6.4.0-150600.23.84.1.150600.12.38.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-docs 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-obs-build 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-source 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-syms 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-zfcpdump 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-default-base 0 6.4.0-150600.23.84.1.150600.12.38.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-docs 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-obs-build 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-source 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-syms 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.84.1.150600.12.38.1
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.84.1

Related vulnerabilities