KernelScan.io

HIGH

nfc SHDLC UAF

CVE-2026-46267

CVSS 7.2 / 10.0 KernelScan AI

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

01

In the Linux kernel, the following vulnerability has been resolved: nfc: hci: shdlc: Stop timers and work before freeing context llc_shdlc_deinit() purges SHDLC skb queues and frees the llc_shdlc structure while its timers and state machine work may still be active. Timer callbacks can schedule sm_work, and sm_work accesses SHDLC state and the skb queues. If teardown happens in parallel with a queued/running work item, it can lead to UAF and other shutdown races. Stop all SHDLC timers and cancel sm_work synchronously before purging the queues and freeing the context. Found by Linux Verification Center (linuxtesting.org) with SVACE.

02

Engine v0.2.0

Risk summary

A race condition in NFC HCI SHDLC teardown can be triggered by a local, low-privileged attacker to cause a kernel use-after-free. Exploitation of the heap UAF can lead to kernel memory corruption, information leakage, and denial of service (kernel panic). Systems with the NFC subsystem enabled are at risk.

Affectednet/nfc/hci/llc_shdlc.c (NFC HCI SHDLC)

Vulnerability analysis

llc_shdlc_deinit() purges skb queues and frees the llc_shdlc structure without first stopping the SHDLC timers or synchronously canceling sm_work. Active timer callbacks (t1_timer, t2_timer, connect_timer) can schedule sm_work, which then accesses the freed SHDLC state and queue heads. This creates a use-after-free and potential shutdown race. The fix adds timer_shutdown_sync() for all three timers, clears the active flags, and calls cancel_work_sync(&shdlc->sm_work) before purging queues and freeing memory.

03

BranchFixed inPatch commit
5.155.15.202c60f41022eaa
6.16.1.165a24a676329d4
6.126.12.75cf70cedce327
6.186.18.14276820278e97
6.196.19.41cb97b122545
6.66.6.12877eef9f2eef0
mainline7.0c9efde1e537b