Description
In the Linux kernel, the following vulnerability has been resolved: ipv4: account for fraggap on the paged allocation path In __ip_append_data(), when the paged-allocation branch is taken, alloclen and pagedlen are computed as alloclen = fragheaderlen + transhdrlen; pagedlen = datalen - transhdrlen; datalen already includes fraggap, but the fraggap bytes carried over from the previous skb are copied into the new skb's linear area at offset transhdrlen by the subsequent skb_copy_and_csum_bits(). The linear area is therefore undersized by fraggap bytes while pagedlen is overstated by the same amount. The non-paged branch sets alloclen to fraglen, which already accounts for fraggap because datalen does. Bring the paged branch in line by adding fraggap to alloclen and subtracting it from pagedlen. After this adjustment, copy no longer collapses to -fraggap on the paged path, so remove the stale comment describing that old arithmetic.
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
8eb77cc73977d88787b37c92831b1c242e035396 to < 5c6375bced6147ec2e460ee3b653f4860d5ecdc2affected8eb77cc73977d88787b37c92831b1c242e035396 to < ce494707a9c07f27c219ca67f3e138061f53d9b3affected8eb77cc73977d88787b37c92831b1c242e035396 to < a9c24eda24bd15f432e37824e6fc440977cb241caffected8eb77cc73977d88787b37c92831b1c242e035396 to < 77798d7be6ef71e72fb6fc8a2901bf74ebc9706faffected8eb77cc73977d88787b37c92831b1c242e035396 to < c04d9ece23deb9e26c19f9ca215e98b3295aa1bbaffected8eb77cc73977d88787b37c92831b1c242e035396 to < eca856950f7cb1a221e02b99d758409f2c5cec42affected
Linux Linux
Default version status: affected
6.0affected0 to < 6.0unaffected6.1.178 to ≤ 6.1.*unaffected6.6.144 to ≤ 6.6.*unaffected6.12.95 to ≤ 6.12.*unaffected6.18.38 to ≤ 6.18.*unaffected7.1.3 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/5c6375bced6147ec2e460ee3b653f4860d5ecdc2 ↗
- https://git.kernel.org/stable/c/ce494707a9c07f27c219ca67f3e138061f53d9b3 ↗
- https://git.kernel.org/stable/c/a9c24eda24bd15f432e37824e6fc440977cb241c ↗
- https://git.kernel.org/stable/c/77798d7be6ef71e72fb6fc8a2901bf74ebc9706f ↗
- https://git.kernel.org/stable/c/c04d9ece23deb9e26c19f9ca215e98b3295aa1bb ↗
- https://git.kernel.org/stable/c/eca856950f7cb1a221e02b99d758409f2c5cec42 ↗