KernelScan.io

HIGH

soc/ti ClkMux Double-Free

CVE-2026-43196

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 AI4.4MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: soc: ti: pruss: Fix double free in pruss_clk_mux_setup() In the pruss_clk_mux_setup(), the devm_add_action_or_reset() indirectly calls pruss_of_free_clk_provider(), which calls of_node_put(clk_mux_np) on the error path. However, after the devm_add_action_or_reset() returns, the of_node_put(clk_mux_np) is called again, causing a double free. Fix by returning directly, to avoid the duplicate of_node_put().

02

Engine v0.2.0

Risk summary

Local administrators with root privileges can trigger a kernel panic on TI AM65x and J721E SoCs by causing a double free in the PRUSS clock mux setup. This affects embedded systems using these TI processors, potentially causing system crashes and denial of service when the driver is probed under memory pressure.

Affecteddrivers/soc/ti/pruss.c (TI PRUSS SoC driver)

Vulnerability analysis

The vulnerability occurs in pruss_clk_mux_setup() where devm_add_action_or_reset() calls pruss_of_free_clk_provider() on error, which internally calls of_node_put(clk_mux_np). However, the original code then calls of_node_put(clk_mux_np) again in the error path, causing a double free of the device tree node reference. The fix eliminates the duplicate of_node_put() call by returning directly after devm_add_action_or_reset(), ensuring the cleanup action handles the reference properly. Triggering this bug requires root privileges to cause driver probe or re-probe (e.g., module load or device bind/unbind) under memory pressure.

03

BranchFixed inPatch commit
5.105.10.252dbda01bf2dfe
5.155.15.20224c40076e3bc
6.16.1.165818cf66d91c8
6.126.12.7569aa67c1e22d
6.186.18.16b7db9953c2f8
6.196.19.604dbbb18cc9c
6.66.6.128e113339cc7d2
mainline7.080db65d4acfb