LiveActive security incident?Get immediate response
CVE Record

CVE-2023-53188: net: openvswitch: fix race on port output

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---

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

This Linux kernel flaw can make a CPU spin indefinitely during a race in Open vSwitch port output handling. The described trigger combines heavy traffic with deletion of a network namespace attached through veth and Open vSwitch. The known impact is denial of service on affected Linux systems, not data theft or privilege escalation based on the provided sources.

Executive priority

Treat this as a targeted availability risk for Linux network virtualization hosts, especially where Open vSwitch is part of production traffic handling. Prioritize normal kernel maintenance for exposed systems; escalate if affected hosts support critical network or container workloads.

Technical view

Open vSwitch can forward to a vport while its backing netdevice is unregistering. After unregistration sets real_num_tx_queues to zero, skb_tx_hash can enter an infinite loop if a packet still reaches dev_queue_xmit. The fix changes do_output handling for devices without carrier and adds a warning path in skb_tx_hash.

Likely exposure

Exposure is most likely on Linux hosts using Open vSwitch with veth interfaces and network namespaces. The source lists Linux kernel as affected, with affected version data including 4.3, 5.4.293, 5.10.237, 5.15.181, 6.1.25, 6.2.12, and 6.3.

Exploitation context

The bundle reports no CISA KEV listing and provides no cited evidence of active exploitation. The described trigger requires a specific local Open vSwitch, veth, and namespace setup, high parallel traffic, and namespace deletion. The source says the race has a low chance and may require retries.

Researcher notes

The source describes a race between netdevice unregistration, delayed vport deletion, and packet output. Evidence supports denial of service through CPU infinite loop. It does not establish remote exploitability, privilege requirements, CVSS, CWE, or exploitation in the wild.

Mitigation direction

  • Apply Linux stable kernel updates containing the referenced Open vSwitch fixes.
  • Check your distribution vendor advisory for the exact fixed kernel package.
  • Prioritize hosts running Open vSwitch with veth-backed network namespaces.
  • Confirm patched code handles no-carrier devices in Open vSwitch do_output.
  • Monitor kernel logs for CPU stuck or skb_tx_hash warnings.

Validation and detection

  • Inventory Linux hosts using Open vSwitch, veth interfaces, and network namespaces.
  • Compare running kernel builds against vendor-fixed packages or referenced stable commits.
  • Review kernel logs for CPU stuck messages during namespace teardown.
  • Verify no critical workload depends on an unpatched affected kernel branch.
  • Track CVE status because severity and CVSS were not provided.
Prepared
Confidence
medium
Sources
8

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2023-53188 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
3Timeline events
0ADP providers
7Source links

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux7f8a436eaa2c3ddd8e1ff2fbca267e6275085536, 7f8a436eaa2c3ddd8e1ff2fbca267e6275085536, 7f8a436eaa2c3ddd8e1ff2fbca267e6275085536, 7f8a436eaa2c3ddd8e1ff2fbca267e6275085536, 7f8a436eaa2c3ddd8e1ff2fbca267e6275085536, 7f8a436eaa2c3ddd8e1ff2fbca267e6275085536unaffected
LinuxLinux4.3, 0, 5.4.293, 5.10.237, 5.15.181, 6.1.25, 6.2.12, 6.3affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.