Description
In the Linux kernel, the following vulnerability has been resolved: l2tp: pass correct message length to ip6_append_data l2tp_ip6_sendmsg needs to avoid accounting for the transport header twice when splicing more data into an already partially-occupied skbuff. To manage this, we check whether the skbuff contains data using skb_queue_empty when deciding how much data to append using ip6_append_data. However, the code which performed the calculation was incorrect: ulen = len + skb_queue_empty(&sk->sk_write_queue) ? transhdrlen : 0; ...due to C operator precedence, this ends up setting ulen to transhdrlen for messages with a non-zero length, which results in corrupted packets on the wire. Add parentheses to correct the calculation in line with the original intent.
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
559d697c5d072593d22b3e0bd8b8081108aeaf59 to < 4c3ce64bc9d36ca9164dd6c77ff144c121011aaeaffected1fc793d68d50dee4782ef2e808913d5dd880bcc6 to < c1d3a84a67db910ce28a871273c992c3d7f9efb5affected96b2e1090397217839fcd6c9b6d8f5d439e705ed to < dcb4d14268595065c85dc5528056713928e17243affectedcd1189956393bf850b2e275e37411855d3bd86bb to < 0da15a70395182ee8cb75716baf00dddc0bea38daffectedf6a7182179c0ed788e3755ee2ed18c888ddcc33f to < 13cd1daeea848614e585b2c6ecc11ca9c8ab2500affected9d4c75800f61e5d75c1659ba201b6c0c7ead3070 to < 804bd8650a3a2bf3432375f8c97d5049d845ce56affected9d4c75800f61e5d75c1659ba201b6c0c7ead3070 to < 83340c66b498e49353530e41542500fc8a4782d6affected9d4c75800f61e5d75c1659ba201b6c0c7ead3070 to < 359e54a93ab43d32ee1bff3c2f9f10cb9f6b6e79affected7626b9fed53092aa2147978070e610ecb61af844affectedfe80658c08e3001c80c5533cd41abfbb0e0e28fdaffected4.19.296 to < 4.19.308affected5.4.258 to < 5.4.270affected5.10.198 to < 5.10.211affected5.15.135 to < 5.15.150affected6.1.57 to < 6.1.80affected4.14.327 to < 4.15affected6.5.7 to < 6.6affected
Linux Linux
Default version status: affected
6.6affected0 to < 6.6unaffected4.19.308 to ≤ 4.19.*unaffected5.4.270 to ≤ 5.4.*unaffected5.10.211 to ≤ 5.10.*unaffected5.15.150 to ≤ 5.15.*unaffected6.1.80 to ≤ 6.1.*unaffected6.6.19 to ≤ 6.6.*unaffected6.7.7 to ≤ 6.7.*unaffected6.8 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/4c3ce64bc9d36ca9164dd6c77ff144c121011aae ↗
- https://git.kernel.org/stable/c/c1d3a84a67db910ce28a871273c992c3d7f9efb5 ↗
- https://git.kernel.org/stable/c/dcb4d14268595065c85dc5528056713928e17243 ↗
- https://git.kernel.org/stable/c/0da15a70395182ee8cb75716baf00dddc0bea38d ↗
- https://git.kernel.org/stable/c/13cd1daeea848614e585b2c6ecc11ca9c8ab2500 ↗
- https://git.kernel.org/stable/c/804bd8650a3a2bf3432375f8c97d5049d845ce56 ↗
- https://git.kernel.org/stable/c/83340c66b498e49353530e41542500fc8a4782d6 ↗
- https://git.kernel.org/stable/c/359e54a93ab43d32ee1bff3c2f9f10cb9f6b6e79 ↗
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html ↗
- https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html ↗