Description
In the Linux kernel, the following vulnerability has been resolved: batman-adv: fix stale receive device on merged fragments Fragment reassembly reuses the skb from the highest-numbered buffered fragment as the merged packet. When that fragment was received on a hard interface which is deleted before the chain completes, the merged skb can re-enter the receive path with a stale skb->dev and skb_iif. batadv_batman_skb_recv() passes such merged packets through the normal receive handlers again. DAT and bridge loop avoidance both derive the ARP header length from skb->dev, so they can dereference the freed net_device before the packet reaches the local mesh interface. Refresh the receive device metadata from the current receive device before running the packet handlers. This keeps internally reinjected merged fragments consistent with the normal receive path after hard interface teardown.
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
610bfc6bc99bc83680d190ebc69359a05fc7f605 to < 63d86250fa7cbe22451369bd1c0881dfc8190958affected610bfc6bc99bc83680d190ebc69359a05fc7f605 to < f830c2dfc1431764db9256b3d5db1695fc9a7f56affected610bfc6bc99bc83680d190ebc69359a05fc7f605 to < f4b4ae763b5d59319fad62a00c76676758e7dafaaffected610bfc6bc99bc83680d190ebc69359a05fc7f605 to < 6df64825f8b199921120c685af2abca14b077331affected610bfc6bc99bc83680d190ebc69359a05fc7f605 to < a2c272da99c2077088083c14961cf2f1e4506995affected610bfc6bc99bc83680d190ebc69359a05fc7f605 to < e91d2cc7441d89a45bad73ad9789159c7441cb80affected610bfc6bc99bc83680d190ebc69359a05fc7f605 to < 2dffc8c44b6e3347b3719c6419c07b4a18fea895affected610bfc6bc99bc83680d190ebc69359a05fc7f605 to < ad46c907d7d9975a285c1e89a4adde652eaa93f5affected
Linux Linux
Default version status: affected
3.13affected0 to < 3.13unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.51 to ≤ 6.18.*unaffected7.2.5 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/63d86250fa7cbe22451369bd1c0881dfc8190958 ↗
- https://git.kernel.org/stable/c/f830c2dfc1431764db9256b3d5db1695fc9a7f56 ↗
- https://git.kernel.org/stable/c/f4b4ae763b5d59319fad62a00c76676758e7dafa ↗
- https://git.kernel.org/stable/c/6df64825f8b199921120c685af2abca14b077331 ↗
- https://git.kernel.org/stable/c/a2c272da99c2077088083c14961cf2f1e4506995 ↗
- https://git.kernel.org/stable/c/e91d2cc7441d89a45bad73ad9789159c7441cb80 ↗
- https://git.kernel.org/stable/c/2dffc8c44b6e3347b3719c6419c07b4a18fea895 ↗
- https://git.kernel.org/stable/c/ad46c907d7d9975a285c1e89a4adde652eaa93f5 ↗