CVE-2021-47309CWE-125

CVE-2021-47309

High · published May 21, 2024

CVSS v3.1
7.8
EPSS
0%
Percentile
15.4
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

net: validate lwtstate->data before returning from skb_tunnel_info()

skb_tunnel_info() returns pointer of lwtstate->data as ip_tunnel_info

type without validation. lwtstate->data can have various types such as

mpls_iptunnel_encap, etc and these are not compatible.

So skb_tunnel_info() should validate before returning that pointer.

Splat looks like:

BUG: KASAN: slab-out-of-bounds in vxlan_get_route+0x418/0x4b0 [vxlan]

Read of size 2 at addr ffff888106ec2698 by task ping/811

CPU: 1 PID: 811 Comm: ping Not tainted 5.13.0+ #1195

Call Trace:

dump_stack_lvl+0x56/0x7b

print_address_description.constprop.8.cold.13+0x13/0x2ee

? vxlan_get_route+0x418/0x4b0 [vxlan]

? vxlan_get_route+0x418/0x4b0 [vxlan]

kasan_report.cold.14+0x83/0xdf

? vxlan_get_route+0x418/0x4b0 [vxlan]

vxlan_get_route+0x418/0x4b0 [vxlan]

[ ... ]

vxlan_xmit_one+0x148b/0x32b0 [vxlan]

[ ... ]

vxlan_xmit+0x25c5/0x4780 [vxlan]

[ ... ]

dev_hard_start_xmit+0x1ae/0x6e0

__dev_queue_xmit+0x1f39/0x31a0

[ ... ]

neigh_xmit+0x2f9/0x940

mpls_xmit+0x911/0x1600 [mpls_iptunnel]

lwtunnel_xmit+0x18f/0x450

ip_finish_output2+0x867/0x2040

[ ... ]

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00250 · 15.4th percentile
Weakness
CWE-125 · Out-of-bounds Read
Published
2024-05-21T19:15Z
Affected products (8)
ProductVersionsFixed in
linux/linux_kernel≥ 4.3, < 4.4.2774.4.277
linux/linux_kernel≥ 4.5, < 4.9.2774.9.277
linux/linux_kernel≥ 4.10, < 4.14.2414.14.241
linux/linux_kernel≥ 4.15, < 4.19.1994.19.199
linux/linux_kernel≥ 4.20, < 5.4.1355.4.135
linux/linux_kernel≥ 5.5, < 5.10.535.10.53
linux/linux_kernel≥ 5.11, < 5.13.55.13.5
linux/linux_kernelall versions—
References (16)
https://git.kernel.org/stable/c/2179d96ec702cc33ead02a9ce40ece599b8538c5 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/67a9c94317402b826fc3db32afc8f39336803d97 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/83bdcfbd968bcc91a0632b7b625e4a9b0cba5e0d · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/8aa13a86964cdec4fd969ef677c6614ff068641a · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/8bb1589c89e61e3b182dd546f1021928ebb5c2a6 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/a915379594f1e045421635c6316d8f3ffa018c58 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/b61d327cd3cc5ea591f3bf751dd11e034f388bb5 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/e7f3c9df40515a6c6b46f36c4c94cf48a043f887 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/2179d96ec702cc33ead02a9ce40ece599b8538c5 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/67a9c94317402b826fc3db32afc8f39336803d97 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/83bdcfbd968bcc91a0632b7b625e4a9b0cba5e0d · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/8aa13a86964cdec4fd969ef677c6614ff068641a · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/8bb1589c89e61e3b182dd546f1021928ebb5c2a6 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/a915379594f1e045421635c6316d8f3ffa018c58 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/b61d327cd3cc5ea591f3bf751dd11e034f388bb5 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/e7f3c9df40515a6c6b46f36c4c94cf48a043f887 · af854a3a-2127-422b-91ae-364da2661108
EPSS history
Timeline
  • 21 MAY 14:35Z
    net: validate lwtstate->data before returning from skb_tunnel_info()
    cvelistv5