CVE-2026-98798 in Linuxinfo

Summary

by MITRE • 10/18/2026

In the Linux kernel, the following vulnerability has been resolved:

net: bcmgenet: fix NULL dereference in set_coalesce before first open

The Rx ring priv and index are only set in bcmgenet_init_rx_ring(), which runs at open. Setting the Rx coalescing parameters on an interface that was never opened, e.g. "ethtool -C eth0 rx-usecs 50", dereferences a NULL ring->priv. The oops happens with RTNL held, so networking stays stuck until a reboot:

Unable to handle kernel paging request at virtual address 0000000000002788 pc : bcmgenet_set_rx_coalesce.isra.0+0x10/0x88 lr : bcmgenet_set_coalesce+0xe8/0x180 Call trace: bcmgenet_set_rx_coalesce.isra.0+0x10/0x88 (P) __ethnl_set_coalesce.isra.0+0x490/0x570 ethnl_set_coalesce+0x48/0xc0 ethnl_default_set_doit+0xf4/0x230 genl_family_rcv_msg_doit+0xe8/0x160 genl_rcv_msg+0x220/0x2a0 netlink_rcv_skb+0x68/0x140 genl_rcv+0x40/0x60 netlink_unicast+0x338/0x3c0 netlink_sendmsg+0x19c/0x3f8 __sock_sendmsg+0x64/0xc0 __sys_sendto+0x124/0x198 __arm64_sys_sendto+0x30/0x48

Set priv and index at probe. Writing the registers while the interface is down is harmless because open resets the MAC and bcmgenet_init_rx_coalesce() reapplies the stored values.

It was observed on a Raspberry Pi CM4, but should apply to all other genet devices.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Analysis

by VulDB Data Team • 10/18/2026

The vulnerability identified in the Linux kernel network driver for Broadcom GENET Ethernet controllers represents a critical NULL pointer dereference issue that occurs during the initialization of receive coalescing parameters. This flaw is specifically triggered when an administrator attempts to configure network interface settings, such as setting Rx interrupt coalescing via ethtool commands like set_coalesce, on an interface that has not yet been brought up or opened by the system. The root cause lies in the lifecycle management of the driver's internal data structures, where critical components required for hardware interaction are initialized at incorrect stages relative to user-space configuration requests.

In a typical network device operation within the Linux kernel, there is a distinct separation between the probe phase, which occurs when the driver detects and initializes support for the hardware during system boot or module loading, and the open phase, which happens when the interface state changes from down to up via an ifconfig or ip link set command. The bcmgenet driver incorrectly defers the allocation and assignment of essential Rx ring private data structures and index variables until the bcmgenet_init_rx_ring function is executed during the open operation. Consequently, any attempt to modify coalescing parameters while the interface remains in a down state results in the driver accessing uninitialized memory pointers that are currently null.

When a user-space application issues an ethtool command to adjust receive coalesce settings before the network interface has been opened, the kernel executes the bcmgenet_set_rx_coalesce function. This function attempts to access ring->priv to update hardware registers or internal state variables associated with interrupt moderation. Because the Rx ring was never initialized due to the interface being closed, this pointer is NULL. The subsequent dereference of this null address triggers a fatal kernel paging request error, commonly known as an oops. The technical trace indicates that this fault occurs within the context holding the RTNL lock, which prevents other networking operations from proceeding and effectively freezes network functionality on the affected system until a reboot or driver reload is performed to clear the locked state.

The operational impact of this vulnerability extends beyond a simple application crash or kernel panic in isolated contexts. Because the error occurs while the RTNL (Routing Netlink) lock is held, it can cause significant disruption to the entire networking subsystem on the host machine. Other network configuration commands may hang indefinitely waiting for the lock to be released, leading to a denial of service condition that affects not only the specific interface but potentially all network communications managed by the kernel's netlink infrastructure. This behavior was observed on Raspberry Pi Compute Module 4 hardware and is applicable to all devices utilizing Broadcom GENET Ethernet controllers due to the shared driver codebase.

From a vulnerability classification perspective, this issue aligns with CWE-476, which describes NULL Pointer Dereference vulnerabilities where software fails to check for null pointers before using them, leading to crashes or potential exploitation if an attacker can control the memory layout around the dereferenced pointer. In terms of attack vectors and tactics, while primarily a stability issue rather than a direct privilege escalation path in this specific instance due to the locking context, it relates to CWE-20 Improper Input Validation because the driver fails to validate that the interface is in an operational state before processing configuration requests. It also touches upon improper resource management principles found in various security frameworks where resources are not allocated or validated prior to use.

To mitigate this vulnerability and prevent similar issues in network drivers, developers should ensure that all necessary data structures required for hardware interaction are initialized during the probe phase rather than deferring them until the open phase if they might be accessed by configuration tools while the interface is down. Specifically, allocating memory for Rx rings and setting initial private pointers at driver initialization ensures that subsequent calls to set_coalesce functions operate on valid memory addresses. Furthermore, implementing explicit checks within setter functions to verify that the network device state indicates an active or properly initialized context can provide a secondary layer of defense against premature access attempts.

System administrators managing systems with affected Broadcom GENET drivers should be aware that configuring coalescing parameters via ethtool must occur after bringing the interface up using standard networking commands. Until patches are applied, avoiding configuration changes to network interfaces before they are fully operational will prevent triggering this NULL pointer dereference and maintain system stability. The fix involves moving the initialization of Rx ring private data from bcmgenet_init_rx_ring to the probe function, ensuring that writing registers while the interface is down remains harmless as the open routine will subsequently reset the MAC and reapply stored values correctly without risking a null reference error.

Responsible

Linux

Reservation

09/25/2026

Disclosure

10/18/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

very low

Sources

Do you know our Splunk app?

Download it now for free!