LiveActive security incident?Get immediate response
CVE Record

CVE-2025-68232: veth: more robust handing of race to avoid txq getting stuck

In the Linux kernel, the following vulnerability has been resolved: veth: more robust handing of race to avoid txq getting stuck Commit dc82a33297fc ("veth: apply qdisc backpressure on full ptr_ring to reduce TX drops") introduced a race condition that can lead to a permanently stalled TXQ. This was observed in production on ARM64 systems (Ampere Altra Max). The race occurs in veth_xmit(). The producer observes a full ptr_ring and stops the queue (netif_tx_stop_queue()). The subsequent conditional logic, intended to re-wake the queue if the consumer had just emptied it (if (__ptr_ring_empty(...)) netif_tx_wake_queue()), can fail. This leads to a "lost wakeup" where the TXQ remains stopped (QUEUE_STATE_DRV_XOFF) and traffic halts. This failure is caused by an incorrect use of the __ptr_ring_empty() API from the producer side. As noted in kernel comments, this check is not guaranteed to be correct if a consumer is operating on another CPU. The empty test is based on ptr_ring->consumer_head, making it reliable only for the consumer. Using this check from the producer side is fundamentally racy. This patch fixes the race by adopting the more robust logic from an earlier version V4 of the patchset, which always flushed the peer: (1) In veth_xmit(), the racy conditional wake-up logic and its memory barrier are removed. Instead, after stopping the queue, we unconditionally call __veth_xdp_flush(rq). This guarantees that the NAPI consumer is scheduled, making it solely responsible for re-waking the TXQ. This handles the race where veth_poll() consumes all packets and completes NAPI *before* veth_xmit() on the producer side has called netif_tx_stop_queue. The __veth_xdp_flush(rq) will observe rx_notify_masked is false and schedule NAPI. (2) On the consumer side, the logic for waking the peer TXQ is moved out of veth_xdp_rcv() and placed at the end of the veth_poll() function. This placement is part of fixing the race, as the netif_tx_queue_stopped() check must occur after rx_notify_masked is potentially set to false during NAPI completion. This handles the race where veth_poll() consumes all packets, but haven't finished (rx_notify_masked is still true). The producer veth_xmit() stops the TXQ and __veth_xdp_flush(rq) will observe rx_notify_masked is true, meaning not starting NAPI. Then veth_poll() change rx_notify_masked to false and stops NAPI. Before exiting veth_poll() will observe TXQ is stopped and wake it up.

HighCVSS 7.5Not KEV-listedUpdated
Glexia's TakeAutomated analysishigh

Security readout for executives and security teams

Plain-English summary

A race in the Linux veth virtual-network driver can leave a transmit queue permanently stopped, halting traffic through the affected path. The issue primarily threatens availability, not confidentiality or integrity. It was observed in production on ARM64 Ampere Altra Max systems and may affect container or network-namespace workloads that rely heavily on veth interfaces.

Executive priority

Treat as high priority for container platforms, virtual networking hosts, and other systems where veth traffic interruption could cause material outages. Prioritize known affected ARM64 environments. Systems without veth usage have lower practical urgency, but affected-build inventory and vendor fix verification should still be completed promptly.

Technical view

In veth_xmit(), a producer-side __ptr_ring_empty() check can race with a consumer on another CPU, causing a lost wakeup after netif_tx_stop_queue(). The fix unconditionally flushes the peer to schedule NAPI and moves peer TXQ wake logic to the end of veth_poll(), after NAPI completion state is updated.

Likely exposure

Exposure applies to Linux systems running affected kernel builds and actively using veth networking. The bundle lists 6.16, 6.17.10, and 6.18 as affected, but its version data includes an ambiguous โ€œ0โ€ entry. Distribution-specific backports may change exposure, so kernel package versions alone are insufficient without vendor mapping.

Exploitation context

The supplied sources report production occurrence but provide no evidence of active malicious exploitation. The CVE is not listed as KEV in the bundle. Although CVSS assigns network reachability and low complexity, the provided description does not establish a reliable remote attack path or attacker-controlled trigger conditions.

Researcher notes

The flaw is a producer-consumer synchronization failure, not memory corruption. Producer-side emptiness testing is unreliable because consumer_head may change concurrently. The referenced correction removes that dependency, ensures consumer scheduling, and performs wake evaluation after rx_notify_masked may be cleared. The bundle does not identify affected distributions, public proof-of-concept code, or confirmed hostile triggering.

Mitigation direction

  • Upgrade to a vendor kernel that includes the applicable stable fix referenced by the Linux kernel commits.
  • Prioritize container hosts and network-namespace systems using veth, especially ARM64 Ampere Altra Max deployments.
  • If immediate upgrading is unavailable, consult distribution guidance for supported mitigations; the supplied sources name no workaround.

Validation and detection

  • Map running kernel builds to vendor advisories and confirm whether the relevant stable fix is included.
  • Identify systems using veth interfaces and prioritize those carrying availability-sensitive workloads.
  • Check monitoring and incident records for stopped transmit queues or unexplained traffic halts.
  • After remediation, stress affected networking paths and confirm transmit queues recover without persistent stalls.
Prepared
Confidence
high
Sources
5

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-2025-68232 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
High
CVSS
7.5 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

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.

1CVSS vectors
3Timeline events
0ADP providers
4Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
7.5CVSS 3.1HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H3.93.6Linux

Vulnerability scoring details

Base CVSS 3.1 score

7.5High
CVSS 3.1 vector shape for CVE-2025-68232Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

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
LinuxLinux9fe31b3f314534e238aa6d0b6fb492134cbcf8be, dc82a33297fc2c58cb0b2b008d728668d45c0f6a, dc82a33297fc2c58cb0b2b008d728668d45c0f6aunaffected
LinuxLinux6.16, 0, 6.17.10, 6.18affected
Weakness

CWE details

No CWE listed

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