Executive brief
A vulnerability in the Linux kernel's networking component could allow a local user to crash the system. The issue occurs when the system processes specific types of network traffic (VLAN packets) using a common diagnostic operation. This could lead to a denial-of-service condition, impacting the availability of the affected server or device.
Technical details
A vulnerability in af_packet.c within the Linux kernel arises from improper handling of the MSG_PEEK flag in vlan_get_protocol_dgram(). The function previously modified the socket buffer (skb) using skb_push() to determine the protocol, which is unsafe when multiple CPUs access the same skb or when MSG_PEEK is used. This leads to an 'skb_under_panic' kernel BUG. The fix reworks vlan_get_protocol_dgram() to use a new helper, __vlan_get_protocol_offset(), which queries the protocol without modifying the skb structure. This vulnerability is reachable by local users via crafted socket calls.
Affected products
- Linux Linux Kernel 4.19.320 to 4.20, 5.4.282 to 5.4.289, 5.10.224 to 5.10.233, 5.15.165 to 5.15.176, 6.1.103 to 6.1.124, 6.6.44 to 6.6.70, 6.10.3 to 6.12.9, 6.13-rc1 to 6.13-rc4
Timeline
- 2024-12-30: patched: Initial patch submitted by Eric Dumazet
- 2025-01-15: advisory: CVE-2024-57901 published
References
- https://git.kernel.org/stable/c/0d3fa6c3c9ca7aa255696150f5b759ac4a4974e1
- https://git.kernel.org/stable/c/560cbdd26b510626f3f4f27d34c44dfd3dd3499d
- https://git.kernel.org/stable/c/5d336714db324bef84490c75dcc48b387ef0346e
- https://git.kernel.org/stable/c/a693b87692b4d7c50f4fc08a996678d60534a9da
- https://git.kernel.org/stable/c/cd8488fdc7116f6da277515647b167859d4f72b1
- https://git.kernel.org/stable/c/de4f8d477c67ec1d7c28f3486c3e47d147d90a01
- https://git.kernel.org/stable/c/f91a5b8089389eb408501af2762f168c3aaa7b79