CVE-2023-53106
📋 TL;DR
A use-after-free vulnerability in the Linux kernel's NFC (Near Field Communication) subsystem allows attackers to potentially execute arbitrary code or crash the system. This affects systems using STMicroelectronics NFC controllers with I2C or SPI interfaces. The vulnerability occurs during driver removal when a race condition allows freed memory to be accessed.
💻 Affected Systems
- Linux kernel with STMicroelectronics NFC driver (st-nci)
📦 What is this software?
Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →⚠️ Risk & Real-World Impact
Worst Case
Local privilege escalation to kernel mode, allowing complete system compromise and arbitrary code execution with kernel privileges.
Likely Case
Kernel panic or system crash leading to denial of service, potentially requiring physical reboot.
If Mitigated
No impact if the vulnerable driver is not loaded or NFC hardware is not present.
🎯 Exploit Status
Requires local access and ability to trigger driver removal while work queue is active. Race condition exploitation can be challenging.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Fixed in Linux kernel stable releases with commits: 2156490c4b7c, 3405eb641daf, 43aa468df246, 5000fe6c2782, 5e331022b448
Vendor Advisory: https://git.kernel.org/stable/c/2156490c4b7cacda9a18ec99929940b8376dc0e3
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. For distributions: Use package manager (apt/yum/dnf) to update kernel package. 3. Reboot system to load new kernel.
🔧 Temporary Workarounds
Disable NFC driver module
linuxPrevent loading of the vulnerable st-nci driver module
echo 'blacklist st_nci' | sudo tee /etc/modprobe.d/blacklist-st-nci.conf
sudo rmmod st_nci
Remove NFC hardware
allPhysically remove STMicroelectronics NFC hardware if present
🧯 If You Can't Patch
- Restrict physical access to systems with vulnerable NFC hardware
- Implement strict user privilege controls to limit who can load/unload kernel modules
🔍 How to Verify
Check if Vulnerable:
Check if st_nci module is loaded: lsmod | grep st_nci. If loaded and kernel version is before fix commits, system is vulnerable.
Check Version:
uname -r
Verify Fix Applied:
Check kernel version includes fix commits: grep -q '2156490c4b7c\|3405eb641daf\|43aa468df246\|5000fe6c2782\|5e331022b448' /proc/version_signature
📡 Detection & Monitoring
Log Indicators:
- Kernel oops messages mentioning st_nci, ndlc, or use-after-free
- System crashes/panics during NFC operations
SIEM Query:
source="kernel" AND ("st_nci" OR "ndlc" OR "use-after-free")
🔗 References
- https://git.kernel.org/stable/c/2156490c4b7cacda9a18ec99929940b8376dc0e3
- https://git.kernel.org/stable/c/3405eb641dafcc8b28d174784b203c1622c121bf
- https://git.kernel.org/stable/c/43aa468df246175207a7d5d7d6d31b231f15b49c
- https://git.kernel.org/stable/c/5000fe6c27827a61d8250a7e4a1d26c3298ef4f6
- https://git.kernel.org/stable/c/5e331022b448fbc5e76f24349cd0246844dcad25
- https://git.kernel.org/stable/c/84dd9cc34014e3a3dcce0eb6d54b8a067e97676b
- https://git.kernel.org/stable/c/b0c202a8dc63008205a5d546559736507a9aae66
- https://git.kernel.org/stable/c/f589e5b56c562d99ea74e05b1c3f0eab78aa17a3