9.3 CRITICAL
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Local (L)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Scope (S): Changed (C)
- Confidentiality (C): High (H)
- Integrity (I): High (H)
- Availability (A): High (H)
- Modified Attack Vector (MAV): Local (L)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): None (N)
- Modified Confidentiality (MC): High (H)
- Modified Scope (MS): Changed (C)
- Modified Integrity (MI): High (H)
- Modified Availability (MA): High (H)
Activity log
- Created & dismissed (max. allowed matches exceeded) suggestion
net: mana: Fix TOCTOU double-fetch of hwc_msg_id from DMA buffer
In the Linux kernel, the following vulnerability has been resolved: net: mana: Fix TOCTOU double-fetch of hwc_msg_id from DMA buffer In mana_hwc_rx_event_handler(), resp->response.hwc_msg_id is read from DMA-coherent memory and bounds-checked, then mana_hwc_handle_resp() re-reads the same field from the same DMA buffer for test_bit() and pointer arithmetic. DMA-coherent memory is mapped uncacheable on x86 and is shared, unencrypted, in Confidential VMs (SEV-SNP/TDX), so each load goes directly to host-visible memory. A H/W can modify the value between the check and the use, bypassing the bounds validation. Fix this by reading hwc_msg_id exactly once using READ_ONCE() into a stack-local variable in mana_hwc_rx_event_handler(), and passing the validated value as a parameter to mana_hwc_handle_resp().
References
Affected products
- <3c4db56ccd13dd020fbf43afabaee74a40ec75e4
- <566f42fb67a7ebfed6650e407e5b72e6b3e83bf7
- <09ec063d87c2dd3fa6f3561361a017bd882e9f37
- =<6.18.*
- =<7.0.*
- <70ad2dff8d052a85dfef15715b531f38a29108cf
- =<6.12.*
- <35f0f0a2536a4d604b4dbad92c85c4a8fdebb870
- <a201c66edf2ebc6cfdc3813a889ba20fecebfae3
- <6180a06bbc99fd9114b8db4be6c4d46e40f046ef
- <5.13
- =<6.1.*
- =<*
- =<6.6.*
- =<5.15.*
- ==5.13