CVE-2023-54149
Use-After-Free in Linux Kernel DSA VLAN Handling Causes RCU Warning
Publication date: 2025-12-24
Last updated on: 2025-12-24
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | kernel | * |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-UNKNOWN |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability involves suspicious usage of Read-Copy-Update (RCU) mechanisms in the Linux kernel's Distributed Switch Architecture (DSA) when handling VLAN-aware MAC addresses. Specifically, when using the felix driver as a DSA master with another DSA switch, a stack trace warning about suspicious RCU usage occurs because vlan_for_each() expects rtnl_lock() context, which is not held in this call path. The issue arises because the state of the 8021q driver is not properly protected from concurrent access, leading to potential race conditions. The root cause is that vlan_for_each() is not suitable for this context, and the fix involves removing the dependency on vlan_for_each() and implementing a non-sleepable, rtnl-free alternative to safely handle VLAN list modifications.
How can this vulnerability impact me? :
This vulnerability can lead to race conditions and potential instability in the Linux kernel networking stack when using the felix DSA driver with VLAN-aware bridges. The suspicious RCU usage warning indicates that concurrent access to VLAN data structures is not properly synchronized, which could cause kernel warnings, crashes, or unpredictable network behavior when downstream switch ports join VLAN-aware bridges.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability can be detected by observing the kernel logs for the specific warning message: 'WARNING: suspicious RCU usage' related to net/8021q/vlan_core.c at line 238. You can check the kernel log using the command: dmesg | grep 'suspicious RCU usage' or journalctl -k | grep 'suspicious RCU usage'. This will help identify if the stack trace related to the felix driver and DSA master VLAN-aware bridge issue is present.
What immediate steps should I take to mitigate this vulnerability?
Immediate mitigation involves updating the Linux kernel to a version where this vulnerability has been resolved. The fix removes the dependency on vlan_for_each() and replaces it with a non-sleepable, rtnl-free alternative to avoid the suspicious RCU usage. Since calling rtnl_lock() is not an option due to potential deadlocks, applying the patch or upgrading to a fixed kernel version is the recommended step.