CVE-2022-49331
📋 TL;DR
This CVE describes a memory leak vulnerability in the Linux kernel's NFC (Near Field Communication) subsystem, specifically in the st21nfca driver's EVT_TRANSACTION handling. When processing NFC transactions, error paths fail to free previously allocated memory, leading to resource exhaustion over time. This affects Linux systems using the st21nfca NFC driver, primarily embedded devices and IoT systems with NFC capabilities.
💻 Affected Systems
- Linux kernel with st21nfca NFC driver
📦 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
Sustained exploitation could lead to kernel memory exhaustion, causing system instability, denial of service, or potential kernel crashes.
Likely Case
Gradual memory consumption leading to degraded system performance over time, particularly on resource-constrained devices.
If Mitigated
Minimal impact with proper monitoring and memory management controls in place.
🎯 Exploit Status
Exploitation requires physical access to trigger NFC transactions with malicious tags or devices. No remote exploitation possible.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Fixed in kernel commits: 3eca2c42daa4, 54423649bc0e, 55904086041b, 593773088d61, 6fce324b530d
Vendor Advisory: https://git.kernel.org/stable/c/3eca2c42daa4659965db6817479027cbc6df7899
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. Check your distribution's security advisories for specific patched versions. 3. Reboot system after kernel update.
🔧 Temporary Workarounds
Disable st21nfca NFC driver
linuxRemove or blacklist the vulnerable NFC driver if not needed
echo 'blacklist st21nfca' >> /etc/modprobe.d/blacklist-nfc.conf
rmmod st21nfca
Disable NFC functionality
linuxTurn off NFC hardware at system level
rfkill block nfc
🧯 If You Can't Patch
- Disable NFC functionality if not required
- Implement monitoring for memory consumption and restart services if memory leaks are detected
🔍 How to Verify
Check if Vulnerable:
Check kernel version and if st21nfca module is loaded: 'uname -r' and 'lsmod | grep st21nfca'
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version is patched and check dmesg for no memory leak warnings related to NFC
📡 Detection & Monitoring
Log Indicators:
- Kernel OOM (Out of Memory) messages
- Increasing memory usage in /proc/meminfo
- dmesg warnings about memory allocation failures
Network Indicators:
- N/A - Not network exploitable
SIEM Query:
source="kernel" AND ("out of memory" OR "memory allocation failure") AND process="nfc"
🔗 References
- https://git.kernel.org/stable/c/3eca2c42daa4659965db6817479027cbc6df7899
- https://git.kernel.org/stable/c/54423649bc0ed464b75807a7cf2857a5871f738f
- https://git.kernel.org/stable/c/55904086041ba4ee4070187b36590f8f8d6df4cd
- https://git.kernel.org/stable/c/593773088d615a46a42c97e01a0550d192bb7f74
- https://git.kernel.org/stable/c/6fce324b530dd74750ad870699e33eeed1029ded
- https://git.kernel.org/stable/c/996419e0594abb311fb958553809f24f38e7abbe
- https://git.kernel.org/stable/c/d221ce54ce331c1a23be71eebf57f6a088632383
- https://git.kernel.org/stable/c/db836b97464d44340b568e041fd24602858713f7
- https://git.kernel.org/stable/c/f444ecd3f57f4ba5090fe8b6756933e37de4226e