High · published July 29, 2024
In the Linux kernel, the following vulnerability has been resolved:
tun: add missing verification for short frame
The cited commit missed to check against the validity of the frame length
in the tun_xdp_one() path, which could cause a corrupted skb to be sent
downstack. Even before the skb is transmitted, the
tun_xdp_one-->eth_type_trans() may access the Ethernet header although it
can be less than ETH_HLEN. Once transmitted, this could either cause
out-of-bound access beyond the actual length, or confuse the underlayer
with incorrect or inconsistent header length in the skb metadata.
In the alternative path, tun_get_user() already prohibits short frame which
has the length less than Ethernet header size from being transmitted for
IFF_TAP.
This is to drop any frame shorter than the Ethernet header size just like
how tun_get_user() does.
CVE: CVE-2024-41091
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 4.20, < 5.4.281 | 5.4.281 |
| linux/linux_kernel | ≥ 5.5, < 5.10.223 | 5.10.223 |
| linux/linux_kernel | ≥ 5.11, < 5.15.164 | 5.15.164 |
| linux/linux_kernel | ≥ 5.16, < 6.1.102 | 6.1.102 |
| linux/linux_kernel | ≥ 6.2, < 6.6.43 | 6.6.43 |
| linux/linux_kernel | ≥ 6.7, < 6.9.12 | 6.9.12 |
| linux/linux_kernel | ≥ 6.10, < 6.10.2 | 6.10.2 |