Description
In the Linux kernel, the following vulnerability has been resolved: net/sched: sch_netem: fix out-of-bounds access in packet corruption In netem_enqueue(), the packet corruption logic uses get_random_u32_below(skb_headlen(skb)) to select an index for modifying skb->data. When an AF_PACKET TX_RING sends fully non-linear packets over an IPIP tunnel, skb_headlen(skb) evaluates to 0. Passing 0 to get_random_u32_below() takes the variable-ceil slow path which returns an unconstrained 32-bit random integer. Using this unconstrained value as an offset into skb->data results in an out-of-bounds memory access. Fix this by verifying skb_headlen(skb) is non-zero before attempting to corrupt the linear data area. Fully non-linear packets will silently bypass the corruption logic.
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
c865e5d99e25a171e8262fc0f7ba608568633c64 to < 8d3de49c22ec0ec8f7199cc7e2b0559de7306f87affectedc865e5d99e25a171e8262fc0f7ba608568633c64 to < a14b56863348686dd0387eea8ce66b85cf455908affectedc865e5d99e25a171e8262fc0f7ba608568633c64 to < 13a66ca1e235d4bcd53d12d4c68490cad7f8e46faffectedc865e5d99e25a171e8262fc0f7ba608568633c64 to < 3a2999704ac36cfb4041fed3652d26a3373e8d12affectedc865e5d99e25a171e8262fc0f7ba608568633c64 to < 4fd258e281fa8bc15e9ce2c7691941537e9258adaffectedc865e5d99e25a171e8262fc0f7ba608568633c64 to < d64cb81dcbd54927515a7f65e5e24affdc73c14baffected
Linux Linux
Default version status: affected
2.6.16affected0 to < 2.6.16unaffected6.1.191 to ≤ 6.1.*unaffected6.6.134 to ≤ 6.6.*unaffected6.12.81 to ≤ 6.12.*unaffected6.18.22 to ≤ 6.18.*unaffected6.19.12 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/8d3de49c22ec0ec8f7199cc7e2b0559de7306f87 ↗
- https://git.kernel.org/stable/c/a14b56863348686dd0387eea8ce66b85cf455908 ↗
- https://git.kernel.org/stable/c/13a66ca1e235d4bcd53d12d4c68490cad7f8e46f ↗
- https://git.kernel.org/stable/c/3a2999704ac36cfb4041fed3652d26a3373e8d12 ↗
- https://git.kernel.org/stable/c/4fd258e281fa8bc15e9ce2c7691941537e9258ad ↗
- https://git.kernel.org/stable/c/d64cb81dcbd54927515a7f65e5e24affdc73c14b ↗