Description
In the Linux kernel, the following vulnerability has been resolved: xfrm: drop ESP-in-TCP packets with no ingress device ESP-in-TCP receives records through the TCP strparser. handle_esp() restores skb->dev from the saved skb_iif before passing the packet into the XFRM input path. Queued TCP data can be processed after the original ingress device has been removed, for example during veth or net namespace teardown. In that case dev_get_by_index_rcu() returns NULL. The XFRM IPv4 and IPv6 input paths both expect skb->dev to be valid while building the route lookup, so queued ESP-in-TCP data can dereference a NULL device. Drop the packet if the saved ingress device can no longer be resolved. Such a packet can no longer be routed through the normal XFRM receive path, and this preserves the existing behaviour for packets whose ingress device still exists.
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
e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 to < 239d0f71af09dc2029fd4d730cb24b8c83aaa43aaffectede27cca96cd68fa2c6814c90f9a1cfd36bb68c593 to < f00235f9d12301183d61f75fbe4105506f3e5140affectede27cca96cd68fa2c6814c90f9a1cfd36bb68c593 to < 6af5cdb03819a5ce6e945992635c6c5e91045367affectede27cca96cd68fa2c6814c90f9a1cfd36bb68c593 to < 2dd1609cadff46c4b20ce53b91ab9cce1380456aaffectede27cca96cd68fa2c6814c90f9a1cfd36bb68c593 to < c296d25efbc840be24de83f56d43bc47e714ace9affectede27cca96cd68fa2c6814c90f9a1cfd36bb68c593 to < 328e40aa774b446969c69b654c52a051a95af8a1affectede27cca96cd68fa2c6814c90f9a1cfd36bb68c593 to < 7911e0236616487b89db6bd3ba3f408abd10eb23affectede27cca96cd68fa2c6814c90f9a1cfd36bb68c593 to < 943d95233b8b4a88994e244fcf466f8c403d63f1affectede27cca96cd68fa2c6814c90f9a1cfd36bb68c593 to < e1d7c5ac1c246ce5775f604515de0a59fbf2116eaffected
Linux Linux
Default version status: affected
5.6affected0 to < 5.6unaffected5.10.269 to ≤ 5.10.*unaffected5.15.220 to ≤ 5.15.*unaffected6.1.187 to ≤ 6.1.*unaffected6.6.156 to ≤ 6.6.*unaffected6.12.108 to ≤ 6.12.*unaffected6.18.49 to ≤ 6.18.*unaffected7.1.13 to ≤ 7.1.*unaffected7.2.3 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/239d0f71af09dc2029fd4d730cb24b8c83aaa43a ↗
- https://git.kernel.org/stable/c/f00235f9d12301183d61f75fbe4105506f3e5140 ↗
- https://git.kernel.org/stable/c/6af5cdb03819a5ce6e945992635c6c5e91045367 ↗
- https://git.kernel.org/stable/c/2dd1609cadff46c4b20ce53b91ab9cce1380456a ↗
- https://git.kernel.org/stable/c/c296d25efbc840be24de83f56d43bc47e714ace9 ↗
- https://git.kernel.org/stable/c/328e40aa774b446969c69b654c52a051a95af8a1 ↗
- https://git.kernel.org/stable/c/7911e0236616487b89db6bd3ba3f408abd10eb23 ↗
- https://git.kernel.org/stable/c/943d95233b8b4a88994e244fcf466f8c403d63f1 ↗
- https://git.kernel.org/stable/c/e1d7c5ac1c246ce5775f604515de0a59fbf2116e ↗