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.
Product status
c865e5d99e25a171e8262fc0f7ba608568633c64 (git) before a14b56863348686dd0387eea8ce66b85cf455908
c865e5d99e25a171e8262fc0f7ba608568633c64 (git) before 13a66ca1e235d4bcd53d12d4c68490cad7f8e46f
c865e5d99e25a171e8262fc0f7ba608568633c64 (git) before 3a2999704ac36cfb4041fed3652d26a3373e8d12
c865e5d99e25a171e8262fc0f7ba608568633c64 (git) before 4fd258e281fa8bc15e9ce2c7691941537e9258ad
c865e5d99e25a171e8262fc0f7ba608568633c64 (git) before d64cb81dcbd54927515a7f65e5e24affdc73c14b
2.6.16
Any version before 2.6.16
6.6.134 (semver)
6.12.81 (semver)
6.18.22 (semver)
6.19.12 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/a14b56863348686dd0387eea8ce66b85cf455908
git.kernel.org/...c/13a66ca1e235d4bcd53d12d4c68490cad7f8e46f
git.kernel.org/...c/3a2999704ac36cfb4041fed3652d26a3373e8d12
git.kernel.org/...c/4fd258e281fa8bc15e9ce2c7691941537e9258ad
git.kernel.org/...c/d64cb81dcbd54927515a7f65e5e24affdc73c14b