CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's Airoha network driver, specifically in the airoha_ppe_deinit() function, which can lead to a use-after-free condition. This occurs when the function replaces an NPU pointer with NULL without ensuring that all existing RCU readers have exited, potentially allowing access to freed memory. Organizations using affected Linux kernel versions should prioritize addressing this issue to mitigate risks associated with memory corruption and potential exploitation.
Original NVD Description
In the Linux kernel, the following vulnerability has been resolved: net: airoha: Fix potential use-after-free in airoha_ppe_deinit() airoha_ppe_deinit() replaces the NPU pointer with NULL via rcu_replace_pointer() but does not wait for existing RCU readers to exit before calling ppe_deinit() and airoha_npu_put(). This can cause a use-after-free if a reader in an RCU read-side critical section still holds a reference to the NPU when it is freed. The init path (airoha_ppe_init) already calls synchronize_rcu() after rcu_assign_pointer(), but the deinit path introduced in commit 6abcf751bc08 ("net: airoha: Fix schedule while atomic in airoha_ppe_deinit()") omitted the matching barrier when switching from rcu_read_lock()/rcu_dereference() to rcu_replace_pointer(). Add synchronize_rcu() before ppe_deinit() to ensure all existing RCU readers have completed before the NPU resources are released.