CVE-2023-53109

net: tunnels: annotate lockless accesses to dev->needed_headroom

published May 2, 2025

CVSS
—
EPSS
0%
Percentile
9.7
In the wild
Unconfirmed
What it is

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

net: tunnels: annotate lockless accesses to dev->needed_headroom

IP tunnels can apparently update dev->needed_headroom

in their xmit path.

This patch takes care of three tunnels xmit, and also the

core LL_RESERVED_SPACE() and LL_RESERVED_SPACE_EXTRA()

helpers.

More changes might be needed for completeness.

BUG: KCSAN: data-race in ip_tunnel_xmit / ip_tunnel_xmit

read to 0xffff88815b9da0ec of 2 bytes by task 888 on cpu 1:

ip_tunnel_xmit+0x1270/0x1730 net/ipv4/ip_tunnel.c:803

__gre_xmit net/ipv4/ip_gre.c:469 [inline]

ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661

__netdev_start_xmit include/linux/netdevice.h:4881 [inline]

netdev_start_xmit include/linux/netdevice.h:4895 [inline]

xmit_one net/core/dev.c:3580 [inline]

dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596

__dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246

dev_queue_xmit include/linux/netdevice.h:3051 [inline]

neigh_direct_output+0x17/0x20 net/core/neighbour.c:1623

neigh_output include/net/neighbour.h:546 [inline]

ip_finish_output2+0x740/0x840 net/ipv4/ip_output.c:228

ip_finish_output+0xf4/0x240 net/ipv4/ip_output.c:316

NF_HOOK_COND include/linux/netfilter.h:291 [inline]

ip_output+0xe5/0x1b0 net/ipv4/ip_output.c:430

dst_output include/net/dst.h:444 [inline]

ip_local_out+0x64/0x80 net/ipv4/ip_output.c:126

iptunnel_xmit+0x34a/0x4b0 net/ipv4/ip_tunnel_core.c:82

ip_tunnel_xmit+0x1451/0x1730 net/ipv4/ip_tunnel.c:813

__gre_xmit net/ipv4/ip_gre.c:469 [inline]

ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661

__netdev_start_xmit include/linux/netdevice.h:4881 [inline]

netdev_start_xmit include/linux/netdevice.h:4895 [inline]

xmit_one net/core/dev.c:3580 [inline]

dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596

__dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246

dev_queue_xmit include/linux/netdevice.h:3051 [inline]

neigh_direct_output+0x17/0x20 net/core/neighbour.c:1623

neigh_output include/net/neighbour.h:546 [inline]

ip_finish_output2+0x740/0x840 net/ipv4/ip_output.c:228

ip_finish_output+0xf4/0x240 net/ipv4/ip_output.c:316

NF_HOOK_COND include/linux/netfilter.h:291 [inline]

ip_output+0xe5/0x1b0 net/ipv4/ip_output.c:430

dst_output include/net/dst.h:444 [inline]

ip_local_out+0x64/0x80 net/ipv4/ip_output.c:126

iptunnel_xmit+0x34a/0x4b0 net/ipv4/ip_tunnel_core.c:82

ip_tunnel_xmit+0x1451/0x1730 net/ipv4/ip_tunnel.c:813

__gre_xmit net/ipv4/ip_gre.c:469 [inline]

ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661

__netdev_start_xmit include/linux/netdevice.h:4881 [inline]

netdev_start_xmit include/linux/netdevice.h:4895 [inline]

xmit_one net/core/dev.c:3580 [inline]

dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596

__dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246

dev_queue_xmit include/linux/netdevice.h:3051 [inline]

neigh_direct_output+0x17/0x20 net/core/neighbour.c:1623

neigh_output include/net/neighbour.h:546 [inline]

ip_finish_output2+0x740/0x840 net/ipv4/ip_output.c:228

ip_finish_output+0xf4/0x240 net/ipv4/ip_output.c:316

NF_HOOK_COND include/linux/netfilter.h:291 [inline]

ip_output+0xe5/0x1b0 net/ipv4/ip_output.c:430

dst_output include/net/dst.h:444 [inline]

ip_local_out+0x64/0x80 net/ipv4/ip_output.c:126

iptunnel_xmit+0x34a/0x4b0 net/ipv4/ip_tunnel_core.c:82

ip_tunnel_xmit+0x1451/0x1730 net/ipv4/ip_tunnel.c:813

__gre_xmit net/ipv4/ip_gre.c:469 [inline]

ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661

__netdev_start_xmit include/linux/netdevice.h:4881 [inline]

netdev_start_xmit include/linux/netdevice.h:4895 [inline]

xmit_one net/core/dev.c:3580 [inline]

dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596

__dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246

dev_queue_xmit include/linux/netdevice.h:3051 [inline]

neigh_direct_output+0x17/0x20 net/core/neighbour.c:1623

neigh_output include/net/neighbour.h:546 [inline]

ip_finish_output2+0x740/0x840 net/ipv4/ip_output.c:228

ip_finish_output+0xf4/0x240 net/ipv4/ip_output.c:316

NF_HOOK_COND include/linux/netfilter.h:291 [inline]

ip_output+0xe5/0x1b0 net/i

---truncated---

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00202 · 9.7th percentile
Published
2025-05-02T15:55Z
EPSS history
Timeline
  • 02 MAY 15:55Z
    net: tunnels: annotate lockless accesses to dev->needed_headroom
    cvelistv5