Description (CNA)
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 (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 4132c4ad00ddbf3a175ea0d2c775b662a32f4c85 before 75e0a544ebe9af663ef53ca21e9e9185c51fb54a; affected e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 before c95f01b78266828a57060d754fcbfc92123a98ed; affected e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 before d960881b9312e781a3429aabceb223ce6b7c882f; affected e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 before 087ee0d914aaae929f1660c9ca878e367655ba1a; affected e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 before 3c770ac4e6f07af7c7b40c474a3efc61ffed7862; affected e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 before 3dc98e5fe82d069dd29b124ffbdb679331dfea43; affected e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 before 99219c82804f266189388e8bf1cf5135d10d5515; affected e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 before 73a187384a8c8b983c7fea046d716b6752a1e7a3; affected e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 before d0d48d999b0eee6bb176ef4e39d9be868fa80f7e; affected 1598154fd28ffa4a55beae1970475fd6776554b6; affected 5.10.233 before 5.10.267; affected 5.4.289 before 5.5 |
| Linux / Linux | affected 5.15; unaffected 0 before 5.15; unaffected 5.10.267 through 5.10.*; unaffected 5.15.218 through 5.15.*; unaffected 6.1.185 through 6.1.*; unaffected 6.6.154 through 6.6.*; unaffected 6.12.106 through 6.12.*; unaffected 6.18.47 through 6.18.*; unaffected 7.1.11 through 7.1.*; unaffected 7.2.1 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
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