Description
In the Linux kernel, the following vulnerability has been resolved:
net: openvswitch: fix race on port output
assume the following setup on a single machine:
1. An openvswitch instance with one bridge and default flows
2. two network namespaces "server" and "client"
3. two ovs interfaces "server" and "client" on the bridge
4. for each ovs interface a veth pair with a matching name and 32 rx and
tx queues
5. move the ends of the veth pairs to the respective network namespaces
6. assign ip addresses to each of the veth ends in the namespaces (needs
to be the same subnet)
7. start some http server on the server network namespace
8. test if a client in the client namespace can reach the http server
when following the actions below the host has a chance of getting a cpu
stuck in a infinite loop:
1. send a large amount of parallel requests to the http server (around
3000 curls should work)
2. in parallel delete the network namespace (do not delete interfaces or
stop the server, just kill the namespace)
there is a low chance that this will cause the below kernel cpu stuck
message. If this does not happen just retry.
Below there is also the output of bpftrace for the functions mentioned
in the output.
The series of events happening here is:
1. the network namespace is deleted calling
`unregister_netdevice_many_notify` somewhere in the process
2. this sets first `NETREG_UNREGISTERING` on both ends of the veth and
then runs `synchronize_net`
3. it then calls `call_netdevice_notifiers` with `NETDEV_UNREGISTER`
4. this is then handled by `dp_device_event` which calls
`ovs_netdev_detach_dev` (if a vport is found, which is the case for
the veth interface attached to ovs)
5. this removes the rx_handlers of the device but does not prevent
packages to be sent to the device
6. `dp_device_event` then queues the vport deletion to work in
background as a ovs_lock is needed that we do not hold in the
unregistration path
7. `unregister_netdevice_many_notify` continues to call
`netdev_unregister_kobject` which sets `real_num_tx_queues` to 0
8. port deletion continues (but details are not relevant for this issue)
9. at some future point the background task deletes the vport
If after 7. but before 9. a packet is send to the ovs vport (which is
not deleted at this point in time) which forwards it to the
`dev_queue_xmit` flow even though the device is unregistering.
In `skb_tx_hash` (which is called in the `dev_queue_xmit`) path there is
a while loop (if the packet has a rx_queue recorded) that is infinite if
`dev->real_num_tx_queues` is zero.
To prevent this from happening we update `do_output` to handle devices
without carrier the same as if the device is not found (which would
be the code path after 9. is done).
Additionally we now produce a warning in `skb_tx_hash` if we will hit
the infinite loop.
bpftrace (first word is function name):
__dev_queue_xmit server: real_num_tx_queues: 1, cpu: 2, pid: 28024, tid: 28024, skb_addr: 0xffff9edb6f207000, reg_state: 1
netdev_core_pick_tx server: addr: 0xffff9f0a46d4a000 real_num_tx_queues: 1, cpu: 2, pid: 28024, tid: 28024, skb_addr: 0xffff9edb6f207000, reg_state: 1
dp_device_event server: real_num_tx_queues: 1 cpu 9, pid: 21024, tid: 21024, event 2, reg_state: 1
synchronize_rcu_expedited: cpu 9, pid: 21024, tid: 21024
synchronize_rcu_expedited: cpu 9, pid: 21024, tid: 21024
synchronize_rcu_expedited: cpu 9, pid: 21024, tid: 21024
synchronize_rcu_expedited: cpu 9, pid: 21024, tid: 21024
dp_device_event server: real_num_tx_queues: 1 cpu 9, pid: 21024, tid: 21024, event 6, reg_state: 2
ovs_netdev_detach_dev server: real_num_tx_queues: 1 cpu 9, pid: 21024, tid: 21024, reg_state: 2
netdev_rx_handler_unregister server: real_num_tx_queues: 1, cpu: 9, pid: 21024, tid: 21024, reg_state: 2
synchronize_rcu_expedited: cpu 9, pid: 21024, tid: 21024
netdev_rx_handler_unregister ret server: real_num_tx_queues: 1, cpu: 9, pid: 21024, tid: 21024, reg_state: 2
dp_
---truncated---
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 4.3 | 5.4.293 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 6.1.25-1 | — |
| Debian 13 | linux | 6.1.25-1 | — |
| Debian 12 | linux | 6.1.25-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 22.04 LTS | linux-bluefield | 5.15.0-1019.21 | — |
| Ubuntu 24.04 LTS | linux-intel +9 | No fix yet | — |
| Ubuntu 22.04 LTS | linux +1 | 5.15.0-144.157 | — |
| Ubuntu 22.04 LTS | linux-aws | 5.15.0-1088.95 | — |
| Ubuntu 22.04 LTS | linux-azure | 5.15.0-1094.103 | — |
| Ubuntu 22.04 LTS | linux-azure-fde | 5.15.0-1094.103.1 | — |
| Ubuntu 22.04 LTS | linux-gcp | 5.15.0-1087.96 | — |
| Ubuntu 22.04 LTS | linux-gke +1 | 5.15.0-1085.91 | — |
| Ubuntu 22.04 LTS | linux-gkeop | 5.15.0-1070.78 | — |
| Ubuntu 22.04 LTS | linux-ibm | 5.15.0-1080.83 | — |
| Ubuntu 22.04 LTS | linux-intel-iotg | 5.15.0-1083.89 | — |
| Ubuntu 22.04 LTS | linux-kvm | 5.15.0-1084.89 | — |
| Ubuntu 22.04 LTS | linux-nvidia | 5.15.0-1082.83 | — |
| Ubuntu 22.04 LTS | linux-nvidia-tegra | 5.15.0-1041.41 | — |
| Ubuntu 22.04 LTS | linux-nvidia-tegra-igx | 5.15.0-1030.30 | — |
| Ubuntu 22.04 LTS | linux-raspi | 5.15.0-1083.86 | — |
| Ubuntu 22.04 LTS | linux-riscv +32 | No fix yet | — |
| Ubuntu 22.04 LTS | linux-xilinx-zynqmp | 5.15.0-1052.56 | — |
| Ubuntu 20.04 LTS | linux-bluefield | 5.4.0-1068.74 | — |
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
Show 14 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-intel-iot-realtime | 5.15.0-1081.83 | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime | 5.15.0-1088.97 | — |
| Ubuntu Pro FIPS 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 16.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-aws-fips | 5.15.0-1088.95+fips1 | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-azure-fips | 5.15.0-1094.103+fips1 | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-fips | 5.15.0-144.157+fips1 | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-gcp-fips | 5.15.0-1087.96+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-updates 16.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro FIPS-preview 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro 20.04 LTS | linux +9 | No fix yet | — |
| Ubuntu Pro 20.04 LTS | linux-aws-5.15 | 5.15.0-1088.95~20.04.1 | — |
| Ubuntu Pro 20.04 LTS | linux-azure-5.15 | 5.15.0-1094.103~20.04.1 | — |
| Ubuntu Pro 20.04 LTS | linux-gcp-5.15 | 5.15.0-1087.96~20.04.2 | — |
| Ubuntu Pro 20.04 LTS | linux-hwe-5.15 +1 | 5.15.0-144.157~20.04.1 | — |
| Ubuntu Pro 20.04 LTS | linux-ibm-5.15 | 5.15.0-1080.83~20.04.1 | — |
| Ubuntu Pro 20.04 LTS | linux-intel-iotg-5.15 | 5.15.0-1083.89~20.04.1 | — |
| Ubuntu Pro 20.04 LTS | linux-nvidia-tegra-5.15 | 5.15.0-1041.41~20.04.1 | — |
| Ubuntu Pro 20.04 LTS | linux-oracle-5.15 | 5.15.0-1085.91~20.04.3 | — |
| Ubuntu Pro 20.04 LTS | linux-riscv-5.15 | 5.15.0-1083.87~20.04.1 | — |
| Ubuntu Pro 18.04 LTS | linux +12 | No fix yet | — |
| Ubuntu Pro 16.04 LTS | linux +7 | No fix yet | — |
| Ubuntu Pro 14.04 LTS | linux-aws +2 | No fix yet | — |
Red Hat
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| RHEL 9 | bpftool | 7.2.0-362.8.1.el9_3 | RHSA-2023:6583 |
| RHEL 9 | rv +64 | 5.14.0-362.8.1.el9_3 | RHSA-2023:6583 |
| RHEL 8 | perf +26 | 4.18.0-513.5.1.el8_9 | RHSA-2023:7077 |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 12 SP5 | kernel-syms +2 | 4.12.14-122.280.1 | SUSE-SU-2025:4189-1 |
Show 1 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLE Live Patching 12 SP5 | kernel-default | 4.12.14-122.280.1 | SUSE-SU-2025:4189-1 |
| SLE Live Patching 12 SP5 | kgraft-patch-SLE12-SP5_Update_74 | 1-8.5.1 | SUSE-SU-2025:4189-1 |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2023 | kernel-livepatch-6.1.25-37.47 | 1.0-0.amzn2023 | ALAS2023-2023-169 |
| Amazon Linux 2023 | perf +12 | 6.1.25-37.47.amzn2023 | ALAS2023-2023-169 |
Advisories 6
- WID-SEC-2025-2053 Linux Kernel: Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 9, 2026
- RHSA-2023:7077 Red Hat Security Advisory: kernel security, bug fix, and enhancement update Red Hat Security Advisories (RHSA) · Oct 17, 2026
- RHSA-2023:6583 Red Hat Security Advisory: kernel security, bug fix, and enhancement update Red Hat Security Advisories (RHSA) · Oct 17, 2026
- WID-SEC-2026-0349 Dell Avamar und NetWorker: Mehrere Schwachstellen BSI CERT-Bund (WID) · Sep 17, 2026
- SUSE-SU-2025:4189-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- ALAS2023-2023-169 Important: kernel security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Feb 8, 2026
References
- https://git.kernel.org/stable/c/9b0dd09c1ceb35950d2884848099fccc9ec9a123
- https://git.kernel.org/stable/c/284be5db6c8d06d247ed056cfc448c4f79bbb16c
- https://git.kernel.org/stable/c/5efcb301523baacd98a47553d4996e924923114d
- https://git.kernel.org/stable/c/644b3051b06ba465bc7401bfae9b14963cbc8c1c
- https://git.kernel.org/stable/c/56252da41426f3d01957456f13caf46ce670ea29
- https://git.kernel.org/stable/c/066b86787fa3d97b7aefb5ac0a99a22dad2d15f8