CVE-2026-63929 Affecting kernel-uek-debug-modules-deprecated package, versions <0:6.12.0-206.104.3.3.el10uek


Severity

Recommended
high

Based on Oracle Linux security rating.

Threat Intelligence

EPSS
0.2% (10th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-ORACLE10-KERNELUEKDEBUGMODULESDEPRECATED-19613503
  • published5 Sept 2026
  • disclosed19 Jul 2026

Introduced: 19 Jul 2026

CVE-2026-63929  (opens in a new tab)

How to fix?

Upgrade Oracle:10 kernel-uek-debug-modules-deprecated to version 0:6.12.0-206.104.3.3.el10uek or higher.
This issue was patched in ELSA-2026-500248.

NVD Description

Note: Versions mentioned in the description apply only to the upstream kernel-uek-debug-modules-deprecated package and not the kernel-uek-debug-modules-deprecated package as distributed by Oracle. See How to fix? for Oracle:10 relevant fixed versions and status.

In the Linux kernel, the following vulnerability has been resolved:

iio: buffer: Fix DMA fence leak in iio_buffer_enqueue_dmabuf()

iio_buffer_enqueue_dmabuf() allocates a struct iio_dma_fence (104 bytes, kmalloc-128) via kmalloc_obj()+dma_fence_init(), which sets the initial kref to 1. It then calls dma_resv_add_fence() which takes a second reference (kref=2), and stores a raw pointer in block->fence.

On the success path the function returns without calling dma_fence_put() to release the initial reference, so every buffer enqueue permanently leaks one kmalloc-128 allocation.

The iio_buffer_cleanup() work item only releases the temporary reference taken during completion signalling by iio_buffer_signal_dmabuf_done(); the initial reference from dma_fence_init() is never released.

With four iio_rwdev instances at 240kHz and 512 samples per buffer, this produces ~1875 kmalloc-128 allocations per second matching the observed slab growth exactly. A test with ftrace confirmed that the dma_fence_destroy event was never triggered.

Fix by calling dma_fence_put() after dma_resv_add_fence(), transferring ownership of the fence to the DMA reservation object. The DMA fence then gets properly discarded after being signalled.

CVSS Base Scores

version 3.1