PatchSiren cyber security CVE debrief
CVE-2026-46110 Linux CVE debrief
A NULL pointer dereference vulnerability exists in the Linux kernel's stmmac network driver when receive buffer memory is exhausted. The driver's receive loop can confuse 'dirty' descriptors (buffer NULL, OWN=0) with 'full' descriptors (buffer valid, OWN=0), leading to a NULL dereference when processing a descriptor whose buffer was already consumed. This occurs when stmmac_rx_refill() fails to allocate new buffers due to memory pressure, leaving descriptors in the 'dirty' state that the receive loop later encounters. The vulnerability affects both stmmac_rx() and stmmac_rx_zc() code paths due to their shared structure. A previous partial fix limited loop iterations but did not address the case where cur_rx catches up to dirty_rx without cycling the full ring. The complete fix adds explicit dirty descriptor checks before advancing cur_rx and removes the iteration clamp.
- Vendor
- Linux
- Product
- Unknown
- CVSS
- HIGH 7.5
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-05-28
- Original CVE updated
- 2026-06-24
- Advisory published
- 2026-05-28
- Advisory updated
- 2026-06-24
Who should care
Organizations running Linux systems with stmmac-based Ethernet controllers, particularly embedded or resource-constrained deployments where memory pressure and RX buffer exhaustion are more likely. Cloud providers and data center operators using affected hardware should prioritize kernel updates to prevent network stack crashes under load.
Technical summary
The stmmac Ethernet driver uses a ring of DMA descriptors for RX buffer management, with CPU and MAC coordinating through an OWN bit. The receive loop (stmmac_rx()) and its zero-copy variant (stmmac_rx_zc()) track positions via cur_rx (consumption) and dirty_rx (refill). When memory exhaustion prevents stmmac_rx_refill() from allocating new buffers, descriptors remain in a 'dirty' state (OWN=0, buffer NULL). The receive loop only checks OWN=0 to identify ready buffers, conflating 'full' descriptors (valid buffer) with 'dirty' descriptors (NULL buffer). When cur_rx catches up to dirty_rx, the loop dereferences a NULL buffer pointer, causing a kernel panic. The fix adds explicit dirty descriptor detection before cur_rx advancement and removes the previous iteration limit workaround.
Defensive priority
high
Recommended defensive actions
- Apply kernel updates containing the stmmac driver fix for CVE-2026-46110
- Monitor systems using stmmac-based Ethernet controllers for kernel NULL pointer dereference panics
- Review kernel logs for memory exhaustion conditions preceding network driver failures
- Prioritize patching on systems with constrained memory or high network load where RX buffer exhaustion is more likely
- Consider enabling kernel crash dumps to capture diagnostic information if NULL dereference occurs before patching
Evidence notes
Vulnerability description sourced from official CVE record and NVD entry. Kernel commit references confirm the fix implementation across stable branches. The description details the three-stage descriptor lifecycle (empty/full/dirty) and the specific failure mode when stmmac_rx_refill() fails under memory pressure.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-46110 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-46110
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-46110 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-46110
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/0bb05e6adfa99a2ea1fee1125cc0953409f83ed8
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/4af2e62cbcda575a174acd230c3f3a208135e16d
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/5c910f7708e3c507b037ca91ca5b09f8cfe71e65
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/950cb436165aad0f8f2cd49da3cd07677465bcde
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/e1c50b273298c7cd9b08b113e7a7598b531a02f5
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.