Executive brief
The Google Virtual Ethernet (gve) driver in the Linux kernel can experience network queue hangs when the system faces extreme memory pressure and page allocation failures. When this occurs, the incoming network interface stops processing packets until the system is rebooted, causing a complete loss of network connectivity for affected hosts. This vulnerability impacts systems running Google Cloud environments or using the gve network driver.
Technical details
The vulnerability is a denial-of-service condition in the gve Rx (receive) path. When page allocation fails during buffer refill under memory pressure, the Rx ring descriptor count falls below a critical threshold. The refill loop exits, but since no packets are being processed, no Rx completions are generated, and NAPI (New API networking) is never scheduled. This creates a deadlock where the queue remains starved even after memory becomes available. The fix introduces a starvation recovery timer (gve_rx_starvation_timer) that periodically reschedules NAPI to break the deadlock and resume buffer refills. The timer is triggered when posted buffers fall below 32 descriptors and runs every 20 milliseconds until the queue recovers above the threshold. No user interaction or authentication is required; the condition is triggered by system memory pressure.
Affected products
- Linux Linux kernel multiple versions with gve DQO (Descriptor Queue Ordering) support
Timeline
- 2026-08-10: disclosed
- 2026-08-03: patched: Fix committed to stable kernel