KernelScan.io

HIGH Introduced in 2.6.32

saa7164 DevList UAF

CVE-2026-89877

CVSS 8.4 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:N/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: saa7164: fix cleanup on resource allocation failure saa7164_dev_setup() adds the device to the global saa7164_devlist before requesting the PCI BAR memory regions. If get_resources() fails, saa7164_dev_setup() decrements the device count and returns an error, but leaves the device on saa7164_devlist. The probe error path then frees the device, leaving a dangling entry on the global list. Reuse the existing MMIO mapping error path to remove the device from saa7164_devlist and decrement the device count before returning. Also release BAR0 if it was successfully requested but the BAR2 request fails.

02

Engine v0.6.0

Risk summary

A use-after-free in the SAA7164 PCI media driver occurs when BAR resource allocation fails during device probe, leaving a freed device structure on a global list that a kernel thread later traverses. Systems with SAA7164-based TV tuner hardware (e.g., Hauppauge HVR-2200/2250) are at risk. The vulnerability can lead to kernel memory corruption, information disclosure, or denial of service.

Affecteddrivers/media/pci/saa7164/saa7164-core.c (saa7164 media driver)

Vulnerability analysis

When a SAA7164 PCI media device is probed and the driver fails to reserve its hardware memory regions, the error path frees the device structure but leaves a stale pointer on an internal driver list. A background kernel thread that periodically walks that list later touches the freed memory, causing a use-after-free. The corrected cleanup now deletes the device from the list before returning the error, and also releases any memory region that was already claimed if a later reservation fails. A system must have this specific PCI hardware installed and experience a resource conflict during device initialization for the flaw to manifest; no attacker interaction is required once the dangling entry exists.

03

BranchIntroducedFixed inPatch commit
6.12.6.326.1.188daa5b32cdf7d
6.122.6.326.12.11069259c627009
6.182.6.326.18.514d2048466af9
6.62.6.326.6.15777f216f8de62
7.22.6.327.2.5fc65623524b5
mainline2.6.327.328e84c6e2e67
cip/6.12.6.326.1.189-cip61daa5b32cdf7d
cip/6.1-rt2.6.326.1.189-cip61-rt32daa5b32cdf7d
cip/6.122.6.326.12.111-cip3269259c627009

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
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Affected — no CIP fix yet (latest 5.10.271-cip78)
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)