Description
In the Linux kernel, the following vulnerability has been resolved: ipv6: fix use-after-free in ip6_finish_output2() ip6_finish_output2() caches a pointer to the IPv6 destination address (daddr) before invoking lwtunnel_xmit(). The LWT-BPF transmit path or other encapsulation operations within lwtunnel_xmit() can reallocate the skb head, freeing the memory that daddr points to. When lwtunnel_xmit() returns LWTUNNEL_XMIT_CONTINUE, the function continues to use the stale daddr pointer to compute the nexthop and to look up or create the neighbour entry. This results in a use-after-free read, which can leak sensitive kernel data, pollute the neighbour table with arbitrary values, misdirect traffic, or crash the system. Fix this by re-fetching the IPv6 header and the destination address pointer after lwtunnel_xmit() returns LWTUNNEL_XMIT_CONTINUE, ensuring that the subsequent nexthop computation and neighbour lookup operate on valid memory.
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
4132c4ad00ddbf3a175ea0d2c775b662a32f4c85 to < 75e0a544ebe9af663ef53ca21e9e9185c51fb54aaffectede415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 to < c95f01b78266828a57060d754fcbfc92123a98edaffectede415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 to < d960881b9312e781a3429aabceb223ce6b7c882faffectede415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 to < 087ee0d914aaae929f1660c9ca878e367655ba1aaffectede415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 to < 3c770ac4e6f07af7c7b40c474a3efc61ffed7862affectede415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 to < 3dc98e5fe82d069dd29b124ffbdb679331dfea43affectede415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 to < 99219c82804f266189388e8bf1cf5135d10d5515affectede415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 to < 73a187384a8c8b983c7fea046d716b6752a1e7a3affectede415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 to < d0d48d999b0eee6bb176ef4e39d9be868fa80f7eaffected1598154fd28ffa4a55beae1970475fd6776554b6affected5.10.233 to < 5.10.267affected5.4.289 to < 5.5affected
Linux Linux
Default version status: affected
5.15affected0 to < 5.15unaffected5.10.267 to ≤ 5.10.*unaffected5.15.218 to ≤ 5.15.*unaffected6.1.185 to ≤ 6.1.*unaffected6.6.154 to ≤ 6.6.*unaffected6.12.106 to ≤ 6.12.*unaffected6.18.47 to ≤ 6.18.*unaffected7.1.11 to ≤ 7.1.*unaffected7.2.1 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/75e0a544ebe9af663ef53ca21e9e9185c51fb54a ↗
- https://git.kernel.org/stable/c/c95f01b78266828a57060d754fcbfc92123a98ed ↗
- https://git.kernel.org/stable/c/d960881b9312e781a3429aabceb223ce6b7c882f ↗
- https://git.kernel.org/stable/c/087ee0d914aaae929f1660c9ca878e367655ba1a ↗
- https://git.kernel.org/stable/c/3c770ac4e6f07af7c7b40c474a3efc61ffed7862 ↗
- https://git.kernel.org/stable/c/3dc98e5fe82d069dd29b124ffbdb679331dfea43 ↗
- https://git.kernel.org/stable/c/99219c82804f266189388e8bf1cf5135d10d5515 ↗
- https://git.kernel.org/stable/c/73a187384a8c8b983c7fea046d716b6752a1e7a3 ↗
- https://git.kernel.org/stable/c/d0d48d999b0eee6bb176ef4e39d9be868fa80f7e ↗