Executive brief
The Linux kernel's ENETC (Ethernet controller) network driver contains a divide-by-zero flaw in its ring allocation logic for i.MX94 series processors. When SR-IOV is not supported, a configuration value is zero, causing undefined behavior that could lead to unpredictable kernel behavior or crashes on some architectures. The issue affects network interface initialization on ARM-based embedded systems.
Technical details
The vulnerability is a divide-by-zero flaw in the enetc4_default_rings_allocation() function within drivers/net/ethernet/freescale/enetc/enetc4_pf.c. On i.MX94 series processors where standalone ENETC ports do not support SR-IOV, the pf->caps.num_vsi field is set to zero. The ring allocation code then performs divisions by num_vsi without checking for zero, violating C semantics. While ARM64's UDIV/SDIV instructions silently return zero instead of raising an exception, this behavior is architecture-dependent and unreliable. The fix adds an explicit check for num_vsi == 0 and returns early from the function after configuring the physical function's rings. This is a local issue affecting kernel initialization on specific hardware platforms.
Affected products
- Linux Linux kernel Affected versions in ENETC driver; patched as of commit 5da65537792b68b6052ffcab65e04c27aea6dfe4 (June 2026)
Timeline
- 2026-06-25: patched: Patch merged upstream (commit 5da65537792b68b6052ffcab65e04c27aea6dfe4)
- 2026-08-28: disclosed