KernelScan.io

HIGH Introduced in 6.10

ipu6 AuxDev DoubleFree

CVE-2026-93070

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI6.9MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: media: ipu6: Do not free aux device pdata after init ipu6_bus_initialize_device() stores the isys/psys pdata pointer in struct ipu6_bus_device and initializes the auxiliary device. After that point, error unwinding must drop the auxiliary device reference and let ipu6_bus_release() free both the bus device and adev->pdata. The isys and psys init paths already call put_device() when MMU initialization fails, and ipu6_bus_add_device() calls auxiliary_device_uninit() on auxiliary_device_add() failure. Both paths therefore run the bus release callback. The extra kfree(pdata) in the callers can release the same object a second time. Remove the manual pdata frees after the auxiliary device has been initialized. This issue was found by a static analysis checker and confirmed by manual source review.

02

Engine v0.6.0

Risk summary

A double free exists in the Intel IPU6 image processing unit driver's device initialization error paths. If MMU initialization or auxiliary device registration fails, platform data is freed both by the bus release callback and by a manual kfree in the caller, corrupting the kernel heap. Systems with Intel IPU6 hardware are at risk; exploitation could lead to kernel code execution or denial of service.

Affecteddrivers/media/pci/intel/ipu6/ipu6.c (media: intel/ipu6)

Vulnerability analysis

When the Intel IPU6 driver sets up its internal auxiliary devices, it hands a block of setup data to an automatic cleanup mechanism, but then also frees the same block manually if a later hardware setup step fails. This leads to a double free because both the error path and the automatic cleanup try to release the same memory. The fix removes the redundant manual release so the cleanup mechanism alone handles the data. The flaw is only present on systems with Intel IPU6 hardware and is reached while the kernel is setting up the imaging device.

03

BranchIntroducedFixed inPatch commit
6.126.106.12.110faa1eb97f0e6
6.186.106.18.525323ed5a7bb2
7.26.107.2.67d102d1f0631
mainline6.107.39be07216af4c
cip/6.126.106.12.111-cip32faa1eb97f0e6

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32