Description
In the Linux kernel, the following vulnerability has been resolved: af_packet: Don't send zero-byte data in tpacket_snd(). syzbot reported a WARNING in __dev_queue_xmit() triggered via tpacket_snd(): skb_assert_len WARNING: at include/linux/skbuff.h:2753 skb_assert_len WARNING: at __dev_queue_xmit+0x21bc/0x4970 net/core/dev.c:4781 Call Trace: <TASK> dev_queue_xmit include/linux/netdevice.h:3448 [inline] packet_xmit+0x243/0x310 net/packet/af_packet.c:276 tpacket_snd net/packet/af_packet.c:2907 [inline] packet_sendmsg+0x28d6/0x4eb0 net/packet/af_packet.c:3134 When sending 0-byte packets via TPACKET ring buffer on devices with no hard header (e.g. dev->hard_header_len == 0), tpacket_fill_skb() populates an skb with skb->len == 0 and returns 0. tpacket_snd() then forwards this empty skb to packet_xmit(), causing __dev_queue_xmit() to hit skb_assert_len(skb). Similar checks exist in packet_snd() via commit dc633700f00f ("net/af_packet: check len when min_header_len equals to 0") and in packet_sendmsg_spkt() via commit 6a341729fb31 ("af_packet: Don't send zero-byte data in packet_sendmsg_spkt()."). Return -EINVAL in tpacket_fill_skb() when skb->len is zero to reject zero-length packets in tpacket_snd().
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < dde212f8622f5cb36223fff1ebd6e6f2a3dc61feaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 80a702964467b998d254f16cc61c2c9a20540c9daffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 7521e691c7c4f2231634c95053281ac888d1f452affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 1fc70b3d513bafb16b17540178870ef46e81c0bbaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 3fa110f9e2ea96f567f2194c673c4bc327640111affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 98c5914d6b7bd4b4675535908e57dea31f1efd6aaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < f09ac5682f1bb67981fcb6ead4d3cfe439225876affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 6bcd76c134c55c697148acb5c0194e9666abdf84affected
Linux Linux
Default version status: affected
2.6.12affected0 to < 2.6.12unaffected5.10.266 to ≤ 5.10.*unaffected5.15.217 to ≤ 5.15.*unaffected6.1.184 to ≤ 6.1.*unaffected6.6.153 to ≤ 6.6.*unaffected6.12.105 to ≤ 6.12.*unaffected6.18.46 to ≤ 6.18.*unaffected7.1.10 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/dde212f8622f5cb36223fff1ebd6e6f2a3dc61fe ↗
- https://git.kernel.org/stable/c/80a702964467b998d254f16cc61c2c9a20540c9d ↗
- https://git.kernel.org/stable/c/7521e691c7c4f2231634c95053281ac888d1f452 ↗
- https://git.kernel.org/stable/c/1fc70b3d513bafb16b17540178870ef46e81c0bb ↗
- https://git.kernel.org/stable/c/3fa110f9e2ea96f567f2194c673c4bc327640111 ↗
- https://git.kernel.org/stable/c/98c5914d6b7bd4b4675535908e57dea31f1efd6a ↗
- https://git.kernel.org/stable/c/f09ac5682f1bb67981fcb6ead4d3cfe439225876 ↗
- https://git.kernel.org/stable/c/6bcd76c134c55c697148acb5c0194e9666abdf84 ↗