nfc: llcp: Fix use-after-free race in nfc_llcp_recv_cc()
21Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 8.8epss 0.3%
exploitation probability
0.3%top 83% of all CVEs
observed exploitation
nono source reports it
In the Linux kernel, the following vulnerability has been resolved:
nfc: llcp: Fix use-after-free race in nfc_llcp_recv_cc()
A race condition exists in the NFC LLCP connection state machine where
the connection acceptance packet (CC) can be processed concurrently with
socket release. This can lead to a use-after-free of the socket object.
When nfc_llcp_recv_cc() moves the socket from the connecting_sockets
list to the sockets list, it does so without holding the socket lock.
If llcp_sock_release() is executing concurrently, it might have already
unlinked the socket and dropped its references, which can result in
nfc_llcp_recv_cc() linking a freed socket into the live list.
Fix this by holding lock_sock() during the state transition and list
movement in nfc_llcp_recv_cc(). After acquiring the lock, check if
the socket is still hashed to ensure it hasn't already been unlinked
and marked for destruction by the release path. This aligns the locking
pattern with recv_hdlc() and recv_disc().
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Affected products
Linux · LinuxReferences
https://git.kernel.org/stable/c/0b45c31746e1523d5d482fda8fcf54a35ac417f1https://git.kernel.org/stable/c/650bdd8fdfab64a09ee474150313dbc48c374795https://git.kernel.org/stable/c/ad8a27d63cac96bac441edd002209ebd996e12fbhttps://git.kernel.org/stable/c/b2a60f7f846faaf5c2cdad4ea6d3a33e5f863183https://git.kernel.org/stable/c/b493ea2765cc17cb8aa7e7544a4b6dcb05b6ed77https://git.kernel.org/stable/c/bd08bb7443c501d2f2a71d529e4afcf11c9b07d2https://git.kernel.org/stable/c/dce85215a6c7b0fd753f577a4c487f647119884chttps://git.kernel.org/stable/c/ee2d1a8a1833c5e56e9a1745e64b0b4edda732c2