{"id":"CVE-2026-64125","state":"PUBLISHED","title":"net: bcmgenet: keep RBUF EEE/PM disabled","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bcmgenet: keep RBUF EEE/PM disabled\n\nSetting RBUF_EEE_EN | RBUF_PM_EN in RBUF_ENERGY_CTRL breaks the RX\npath on GENET hardware once MAC EEE becomes active. RX traffic stops\nflowing while the link stays up and the usual descriptor/RX error\ncounters remain quiet. In that state the MAC still accepts frames\n(rbuf_ovflow_cnt keeps climbing) but RBUF no longer forwards them to\nDMA, so rx_packets is no longer incremented at the netdev level. On\nsome boards the corruption ends up as a paging fault in\nskb_release_data via bcmgenet_rx_poll on an LPI exit.\n\nReproduced on Pi 4B (BCM2711 + BCM54213PE) and confirmed by Florian\nFainelli on an internal Broadcom 4908-family board with the same crash\nsignature. RBUF_PM_EN is not publicly documented.\n\nThis shows up more often now that phy_support_eee() enables EEE by\ndefault, but it also affects older kernels as soon as TX LPI is\nturned on via ethtool, so it is not specific to recent changes.\n\nAlways clear RBUF_EEE_EN | RBUF_PM_EN in bcmgenet_eee_enable_set so\nthe bits stay off across resets. UMAC and TBUF setup is left alone so\nTX-side EEE keeps working.","publishedAt":"2026-07-19T15:40:22.590Z","updatedAt":"2026-10-19T20:28:13.405Z","severity":{"score":9.8,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"2040eb83f6ada148fb32dd98b943a498005d79f2","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"f2782ddac82c70df313012da5f71f1f06b5553ca","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"b579f3a73da7a7e74213558f4cc3d865c30aaa78","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"289499907399c5a9f2ed82cb34df49112bb8488f","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"a212fc08f5c48a16a94092bf0a9a8b7cf4483b11","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"3d4ef05266ab16d8ef7dd21658a557801eb78704","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"49bdf6bbb21b9c6e3f4d0c1910bf0ef98424be95","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"9a1730245e416d11ad5c0f2c100061d61cc43f60","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/broadcom/genet/bcmgenet.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.19","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.19","versionType":"semver"},{"version":"5.10.258","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.209","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.175","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.142","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.92","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.34","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.11","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/broadcom/genet/bcmgenet.c"]}],"references":["https://git.kernel.org/stable/c/2040eb83f6ada148fb32dd98b943a498005d79f2","https://git.kernel.org/stable/c/f2782ddac82c70df313012da5f71f1f06b5553ca","https://git.kernel.org/stable/c/b579f3a73da7a7e74213558f4cc3d865c30aaa78","https://git.kernel.org/stable/c/289499907399c5a9f2ed82cb34df49112bb8488f","https://git.kernel.org/stable/c/a212fc08f5c48a16a94092bf0a9a8b7cf4483b11","https://git.kernel.org/stable/c/3d4ef05266ab16d8ef7dd21658a557801eb78704","https://git.kernel.org/stable/c/49bdf6bbb21b9c6e3f4d0c1910bf0ef98424be95","https://git.kernel.org/stable/c/9a1730245e416d11ad5c0f2c100061d61cc43f60"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64125.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64125","state":"PUBLISHED","datePublished":"2026-07-19T15:40:22.590Z","dateUpdated":"2026-10-19T20:28:13.405Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T07:54:57.036Z"},"containers":{"cna":{"title":"net: bcmgenet: keep RBUF EEE/PM disabled","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bcmgenet: keep RBUF EEE/PM disabled\n\nSetting RBUF_EEE_EN | RBUF_PM_EN in RBUF_ENERGY_CTRL breaks the RX\npath on GENET hardware once MAC EEE becomes active. RX traffic stops\nflowing while the link stays up and the usual descriptor/RX error\ncounters remain quiet. In that state the MAC still accepts frames\n(rbuf_ovflow_cnt keeps climbing) but RBUF no longer forwards them to\nDMA, so rx_packets is no longer incremented at the netdev level. On\nsome boards the corruption ends up as a paging fault in\nskb_release_data via bcmgenet_rx_poll on an LPI exit.\n\nReproduced on Pi 4B (BCM2711 + BCM54213PE) and confirmed by Florian\nFainelli on an internal Broadcom 4908-family board with the same crash\nsignature. RBUF_PM_EN is not publicly documented.\n\nThis shows up more often now that phy_support_eee() enables EEE by\ndefault, but it also affects older kernels as soon as TX LPI is\nturned on via ethtool, so it is not specific to recent changes.\n\nAlways clear RBUF_EEE_EN | RBUF_PM_EN in bcmgenet_eee_enable_set so\nthe bits stay off across resets. UMAC and TBUF setup is left alone so\nTX-side EEE keeps working."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"2040eb83f6ada148fb32dd98b943a498005d79f2","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"f2782ddac82c70df313012da5f71f1f06b5553ca","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"b579f3a73da7a7e74213558f4cc3d865c30aaa78","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"289499907399c5a9f2ed82cb34df49112bb8488f","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"a212fc08f5c48a16a94092bf0a9a8b7cf4483b11","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"3d4ef05266ab16d8ef7dd21658a557801eb78704","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"49bdf6bbb21b9c6e3f4d0c1910bf0ef98424be95","versionType":"git"},{"version":"6ef398ea60d931b97d69ed080bd0bd00fac38ec6","status":"affected","lessThan":"9a1730245e416d11ad5c0f2c100061d61cc43f60","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/broadcom/genet/bcmgenet.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.19","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.19","versionType":"semver"},{"version":"5.10.258","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.209","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.175","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.142","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.92","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.34","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.11","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/broadcom/genet/bcmgenet.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/2040eb83f6ada148fb32dd98b943a498005d79f2"},{"url":"https://git.kernel.org/stable/c/f2782ddac82c70df313012da5f71f1f06b5553ca"},{"url":"https://git.kernel.org/stable/c/b579f3a73da7a7e74213558f4cc3d865c30aaa78"},{"url":"https://git.kernel.org/stable/c/289499907399c5a9f2ed82cb34df49112bb8488f"},{"url":"https://git.kernel.org/stable/c/a212fc08f5c48a16a94092bf0a9a8b7cf4483b11"},{"url":"https://git.kernel.org/stable/c/3d4ef05266ab16d8ef7dd21658a557801eb78704"},{"url":"https://git.kernel.org/stable/c/49bdf6bbb21b9c6e3f4d0c1910bf0ef98424be95"},{"url":"https://git.kernel.org/stable/c/9a1730245e416d11ad5c0f2c100061d61cc43f60"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - The fault is reached in `bcmgenet_rx_poll` during NAPI processing of received Ethernet frames; any remote host that can send traffic to a GENET-equipped, network-connected target (e.g., internet-exposed Raspberry Pi, Broadcom gateway, or edge IoT device) can drive RX activity and LPI exit transitions that trigger the corrupted RX path.\nAC:L - On affected GENET hardware with an EEE-capable link partner (now common and enabled by default via `phy_support_eee()`), the bug reproduces within minutes under normal RX load without attacker-influenced memory layout, and the attacker controls timing by sending sustained or bursty traffic to force LPI entry/exit cycles.\nPR:N - Exploitation does not require authentication or elevated privileges; EEE is enabled automatically at link-up through `bcmgenet_mii_setup()` → `bcmgenet_eee_enable_set()`, so a remote attacker only needs the ability to send network packets to the target interface.\nUI:N - No victim action is required beyond the device having a normal link with EEE-capable equipment; the misconfigured RBUF registers and subsequent RX stall or kernel oops occur during routine background network activity.\nS:U - Impact is confined to kernel/network availability on the same host (RX path stall, skb corruption, and kernel panic); there is no demonstrated crossing of a VM, container, or IOMMU security boundary.\nC:H - Hardware RX desynchronization from incorrectly enabled `RBUF_EEE_EN|RBUF_PM_EN` corrupts skb/DMA ring state and manifests as invalid pointers in `skb_release_data` during `bcmgenet_rx_poll`, consistent with use-after-free/double-free class corruption that can enable arbitrary kernel memory disclosure.\nI:H - The same skb pointer corruption in the RX teardown path can yield heap write primitives (double-free/incorrect free of sk_buff metadata) during LPI exit, which is the class of memory corruption typically leveraged for kernel control-flow hijacking.\nA:H - The bug reliably causes complete RX failure (silent loss of connectivity while the link remains up) and can escalate to a fatal kernel oops/panic in softirq context, constituting total loss of network availability and potential full system availability loss."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:39:31.893Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"5.10.258"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"5.15.209"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"6.1.175"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"6.6.142"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"6.12.92"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"6.18.34"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"7.0.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"7.1"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-64125","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T15:36:46.782913Z"}}}],"problemTypes":[{"descriptions":[{"lang":"en","type":"CWE","description":"CWE-noinfo Not enough information"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T20:28:13.405Z"}}]}}}