CVE-2026-46122: Fixes Broadcom b43 Wi‑Fi Out-of-Bounds Read in Linux Kernel

CVE-2026-46122, published by NVD on May 28, 2026 after a kernel.org assignment, fixes an out-of-bounds read in the Linux kernel’s Broadcom b43 Wi-Fi driver by rejecting received frames that report an invalid firmware-controlled key index. The bug is narrow, hardware-specific, and still awaiting NVD enrichment, which means there is no official NVD CVSS score yet. But the lesson is broader than one aging wireless chipset: Linux is still carrying security debt in driver paths where firmware is trusted to behave. For WindowsForum readers who run Linux on spare laptops, dual-boot workstations, routers, labs, or fleet endpoints, this is the kind of small kernel patch that deserves more attention than its modest description suggests.

Diagram showing a Linux b43_rx path security warning where firmware key_id 200 is out of range and drops the frame.A Small Wi-Fi Driver Bug Exposes a Familiar Kernel Bargain​

The b43 driver sits in one of the less glamorous corners of the Linux kernel: support for older Broadcom 43xx wireless hardware through the mac80211 stack. That already tells us why this vulnerability will not generate the same heat as a headline-grabbing local privilege escalation in a core subsystem. It is tied to a specific driver, a specific receive path, and a class of devices many modern laptops no longer ship with.
Yet the bug is security-relevant precisely because it happens inside the kernel’s trusted boundary. The vulnerable path, b43_rx(), receives metadata from firmware, including a key index used to look up entries in the driver’s dev->key[] array. That array has 58 entries. The firmware-controlled index, according to the CVE description, could exceed that size.
The old code had a warning check, B43_WARN_ON, but the important phrase in the CVE is “non-enforcing in production builds.” In other words, the driver could notice something suspicious in development or debugging contexts without reliably stopping the unsafe access on real systems. The fix turns the warning into a hard guard: if firmware reports an invalid key index, the frame is dropped.
That change is both mundane and revealing. A bounds check that merely complains is not a security boundary. A bounds check that prevents the operation is.

The Word “Firmware” Is Doing a Lot of Work Here​

The kernel.org wording describes the key index as firmware-controlled, and that is the hinge of the issue. Wi-Fi firmware is not just passive configuration data. It is active code running on the device side, feeding information back into the host driver and shaping how the operating system sees packets, encryption state, and device behavior.
Modern systems are full of this arrangement. Network cards, GPUs, storage controllers, Bluetooth chips, touch controllers, and even keyboards increasingly depend on opaque or semi-opaque firmware components. The OS kernel often has to treat those components as partners while still defending itself from their mistakes.
That bargain is uncomfortable. Firmware may be buggy. It may be malformed. It may be old. It may be proprietary and underdocumented. In some threat models, it may even be attacker-influenced, especially when the device is parsing hostile radio traffic, USB input, or network frames before the host driver has a chance to enforce policy.
CVE-2026-46122 is not, based on the public description, proof of remote code execution or an actively exploited Wi-Fi attack. It is an out-of-bounds read caused by trusting a firmware-provided index. But that is exactly the type of primitive kernel developers have spent the last decade trying to squeeze out of production code. It may only leak adjacent memory or destabilize the driver. It may be hard to trigger reliably. It may require hardware few people still use. The point is that none of those qualifiers make the missing enforcement defensible.

The Patch Is Tiny Because the Trust Model Was Wrong​

The fix described by the CVE is simple: drop the frame when the key index is invalid. That is the right shape for this bug. The driver does not need to guess what the firmware meant. It does not need to repair the index, clamp it, or soldier on with a best-effort fallback. If the metadata points outside the array, the packet is not trustworthy enough to process.
This is one of those cases where the code change is likely smaller than the institutional lesson. Kernel drivers often accumulate checks that were originally written as developer diagnostics. A warning says, “This should never happen.” A security boundary says, “If this happens, we stop.”
The distinction matters more in drivers than almost anywhere else in the kernel. Driver code is the translation layer between the messy physical world and the strict assumptions of kernel memory. Hardware lies. Firmware disagrees with documentation. Devices return stale values after suspend and resume. DMA engines get confused. Radios receive garbage. A production kernel cannot afford to treat impossible states as impossible.
That is why this CVE lands as part of a larger pattern in Linux security maintenance. The kernel project is increasingly assigning CVEs to fixes that look like ordinary robustness patches: missing bounds checks, lifetime mistakes, reference counting errors, array indexing bugs, and validation gaps in driver-specific code. Critics sometimes argue this inflates vulnerability counts. But for administrators, the distinction between “security bug” and “stability bug” is less useful when both live in privileged kernel code.

Old Hardware Does Not Mean Low Risk​

The b43 driver is associated with Broadcom 43xx devices, a family with a long Linux history and a reputation shaped by years of firmware, reverse engineering, and compatibility work. Many readers will reasonably ask whether this matters in 2026 on current hardware. For a new Windows 11 laptop with a recent Intel, Qualcomm, Realtek, or MediaTek wireless stack, probably not directly.
But Linux deployments do not age like consumer marketing slides. Old mini-PCs become lab machines. Retired laptops become travel systems, homelab jump boxes, firewall consoles, or Linux Mint desktops for relatives. Industrial systems and embedded appliances keep using chipsets long after mainstream retail has moved on. The hardware that looks irrelevant in a flagship laptop review can remain annoyingly relevant in the field.
That is especially true for community users who keep devices alive precisely because Linux supports them. A driver like b43 exists because the kernel’s hardware support horizon is unusually long. That is one of Linux’s strengths, but it also means the kernel inherits old assumptions from old code paths.
There is also a practical Windows angle here. Many WindowsForum readers are not Linux-only users; they are Windows-first administrators who run Linux where it makes sense. That may be WSL for development, a Proxmox host under Windows workloads, a Linux router, a dual-boot recovery laptop, or an old notebook used for network diagnostics. A vulnerability in a niche Linux Wi-Fi driver may never touch the primary Windows desktop, but it can still affect the machines that quietly support a Windows-heavy environment.

No Score Yet, No Panic Button Either​

NVD has marked the CVE as awaiting enrichment, and its published record does not yet include NVD CVSS 4.0, 3.x, or 2.0 scoring. That absence should not be overread. It does not mean the bug is harmless. It also does not mean administrators should invent a worst-case severity in the vacuum.
The available facts point to a constrained kernel-driver flaw. It is an out-of-bounds read, not an out-of-bounds write. It is in the b43 Wi-Fi driver, not the generic networking stack. It depends on firmware-provided receive metadata. The fix is to drop frames with invalid key indexes.
Those details usually argue against broad emergency response. They also argue for routine kernel updating without delay on affected systems. The operational posture is boring but correct: identify whether you load the b43 driver, confirm whether your distribution has shipped the stable fix, and patch through normal kernel update channels.
The absence of a score is also a reminder that CVSS often arrives after defenders need to make decisions. For small kernel CVEs, the best early signal is frequently the patch itself. What subsystem changed? Is the vulnerable code reachable by untrusted input? Is it built or loaded on your systems? Is there a practical mitigation while waiting for a vendor kernel? Those questions matter more than the eventual decimal number.

The Real Boundary Is the Loaded Module, Not the CVE Page​

For most users, the decisive question is whether the vulnerable driver is present and active. Linux distributions often build many drivers as loadable modules, but a bug in an unused module is not the same thing as a bug in code actively handling packets on your laptop. The presence of a CVE in the upstream kernel does not automatically mean every Linux machine is exposed.
On a running system, the practical investigation starts with hardware and modules. If the system does not have Broadcom 43xx-class hardware and is not loading b43, the direct risk from this CVE is likely negligible. If it does load b43, especially on a machine that uses Wi-Fi in untrusted environments, the patch becomes more relevant.
Administrators should also remember that distribution kernels differ from upstream kernels. A fix may land in multiple upstream stable branches and then be backported into vendor-maintained kernels with different version strings. Ubuntu, Debian, Fedora, Arch, SUSE, Red Hat derivatives, and appliance vendors may expose the fix through package revisions rather than an obvious jump to a newer upstream kernel.
That is why “am I running kernel version X?” is often the wrong first question. The better question is whether your distribution’s kernel package includes the specific stable fix or a backport of it. Enterprise distributions, in particular, routinely carry security patches without changing the apparent major kernel version in the way desktop users expect.

The Windows Lesson Is About Drivers, Not Linux Exceptionalism​

It would be easy for a Windows-centric audience to file this under “Linux kernel bug” and move on. That would miss the more useful comparison. Windows has lived through its own long history of driver trust problems, especially where vendor-supplied code and device firmware meet privileged OS components.
The lesson is not that Linux is uniquely careless. It is that driver ecosystems are where operating systems are forced to rely on parties outside the core kernel team. Microsoft can harden Windows. The Linux community can harden the kernel. Apple can tighten macOS. But each platform still has to communicate with hardware that may return bad state, stale indexes, inconsistent descriptors, or hostile data shaped by an external environment.
The better comparison is between trust models. Windows increasingly pushes driver signing, isolation, virtualization-based security, and hardware-enforced protections. Linux leans on review, rapid upstream fixes, distribution backports, sanitizers, and a massive public development process. Neither model eliminates the basic hazard of privileged code parsing device-controlled input.
CVE-2026-46122 is therefore a reminder that “firmware said so” should never be enough. Whether the host OS is Windows or Linux, every boundary crossing from device to kernel deserves skepticism. If a value indexes an array, the array length must win.

Kernel CVEs Are Becoming More Numerous Because the Net Is Wider​

Linux kernel CVE volume has become a recurring source of confusion. The project’s security process increasingly turns upstream fixes into CVE records, including bugs that previously might have been treated as ordinary maintenance. That can make the vulnerability feed look noisy, especially when dozens of narrowly scoped driver flaws appear alongside more dramatic privilege-escalation bugs.
There is a reasonable debate about whether every low-level correctness fix deserves the CVE machinery. Security teams can become numb when feeds are flooded with issues that do not affect their hardware, configuration, or threat model. A storage driver bug on hardware they do not own and a remotely reachable packet parser flaw should not create the same operational alarm.
But the opposite problem is worse: treating kernel memory safety as a bookkeeping detail until exploitability is publicly demonstrated. Many serious bugs begin life as dull-sounding bounds issues. The fact that a driver-specific out-of-bounds read is not automatically catastrophic does not mean it should be ignored.
The right answer is triage, not cynicism. CVE-2026-46122 deserves a low-drama response: understand the affected driver, patch affected systems, and avoid inflating the issue into a universal Linux emergency. It also deserves to be recorded, because production kernels should not read outside arrays based on untrusted device metadata.

Wireless Bugs Carry a Different Psychological Weight​

Wi-Fi vulnerabilities feel different from local-only bugs because wireless is ambient. Users cannot see the attack surface. A laptop in a coffee shop, airport, office, or apartment building is surrounded by radios it did not choose. That does not mean every Wi-Fi driver bug is remotely exploitable from the next table, but it explains why defenders tend to be sensitive to receive-path flaws.
The public description does not establish that an attacker can trigger this bug merely by sending crafted 802.11 traffic. It says the key index is firmware-controlled. Depending on hardware behavior, firmware implementation, encryption state, and driver path, the trigger conditions may be far more limited than a simple packet-in-the-air scenario.
Still, the receive path is the side of the driver that processes inbound frames. It is a security-sensitive place for unchecked values. If the driver consumes metadata produced after firmware has processed radio input, the host kernel should assume the value needs validation.
That is the conservative engineering stance: not panic, but distrust. Wireless hardware exists at the edge of the machine, exposed to noisy and potentially hostile environments. A driver that drops malformed or inconsistent receive data is doing what a kernel driver should have done all along.

The Practical Exposure Window Depends on Distributions​

The CVE record lists stable kernel commits rather than a single universal product update. That is normal for Linux and mildly frustrating for administrators. Upstream fixes are the beginning of the remediation chain, not the end.
Rolling distributions may pick up the fix quickly through new kernel packages. Enterprise distributions may backport it into maintained kernels after testing. Appliance vendors may lag, especially if the affected hardware is old or the product is near end of life. Hobbyist systems may remain exposed indefinitely if they are rarely updated.
This is where Windows administrators who also manage Linux should resist the urge to apply Windows Update mental models too literally. A patched Linux system may still report an older kernel base version. A vulnerable one may appear “new enough” but lack a particular stable backport. The package changelog, vendor advisory, or distribution security tracker is usually the more reliable authority.
For individual users, the answer is simpler: install kernel updates from your distribution and reboot into the updated kernel. Kernel fixes do not help if the old kernel remains running for weeks because the machine sleeps instead of restarting. That old lesson applies whether the box is a desktop, a server, or a forgotten wireless bridge under someone’s desk.

Mitigation Is Mostly About Not Loading What You Do Not Use​

There is no exotic workaround in the CVE description because the fix is straightforward. If you use affected b43 hardware, you want the patched driver. If you do not use b43, you generally do not need the module loaded.
That creates a familiar hardening opportunity. Linux systems often support far more hardware than any one machine contains. In tightly managed environments, administrators can reduce attack surface by blacklisting unused modules, building minimal kernels, or enforcing module-loading policy. Most desktops will not go that far, but servers and appliances often should.
For this particular CVE, disabling b43 on a system that does not need it is a reasonable defense-in-depth move, though it should not be confused with patching an affected Wi-Fi client that actually depends on the driver. Removing the driver from use may also break wireless connectivity on older Broadcom devices, which is why mitigation has to be matched to inventory.
The broader point is that driver exposure is concrete. Unlike a speculative dependency buried twelve layers deep, a wireless kernel module is either loaded or not. That makes this a good candidate for practical fleet hygiene rather than abstract vulnerability anxiety.

The Patch Says More About Defensive Coding Than About Broadcom​

It is tempting to make the story about Broadcom, because b43 is a Broadcom driver and Broadcom wireless support has long been a recurring Linux pain point. But the specific failure mode is not unique to one vendor. Any driver that accepts an index, length, count, descriptor, queue ID, or key slot from device-side code faces the same class of risk.
The kernel side must treat those values as untrusted until proven otherwise. That is easy to say and harder to enforce across millions of lines of driver code written over decades. Some paths were designed when the security implications of device metadata were less aggressively scrutinized. Others were written under the assumption that firmware and driver are two halves of a cooperative system.
Modern threat modeling has moved on. Firmware is part of the attack surface. Device state is part of the attack surface. Radio-facing code is part of the attack surface. Even if the hardware is old and the exploitability is unclear, the correct design principle is no longer debatable.
In that sense, CVE-2026-46122 is a small win for kernel hardening. It replaces a diagnostic assumption with an enforced condition. The code now says: if the key index is outside the table, the frame is not processed. That is the right answer.

The b43 Fix Belongs in the “Patch, Don’t Panic” File​

This CVE should not cause WindowsForum readers to rip out Linux systems or treat every Broadcom-equipped laptop as compromised. It should cause anyone responsible for Linux endpoints to check whether old wireless hardware is still in use and whether kernel updates are being applied promptly. The concrete lessons are narrow, but they are useful.
  • CVE-2026-46122 affects the Linux kernel’s b43 Wi-Fi driver receive path, not Windows networking or the entire Linux wireless stack.
  • The flaw is an out-of-bounds read caused by trusting a firmware-controlled key index that can exceed the 58-entry dev->key[] array.
  • The upstream fix changes the behavior from warning about an invalid index to dropping the offending frame.
  • NVD had not assigned its own CVSS score at publication time, so severity should be judged from exposure, hardware use, and distribution patch status rather than a missing number.
  • Systems that do not load the b43 driver are unlikely to have meaningful direct exposure to this specific issue.
  • Affected users should install distribution kernel updates and reboot, while administrators should consider disabling unused wireless driver modules where operationally practical.

The Next Kernel Bug Will Look Just as Boring Until It Does Not​

The most important thing about CVE-2026-46122 is not that it is dramatic. It is that it is typical. The modern kernel security story is increasingly made of small corrections at trust boundaries: one array index checked, one reference count fixed, one length validated, one impossible state made impossible in production rather than merely noisy in debug builds.
That is healthy, but it is also administratively exhausting. Security teams want clean severity labels and crisp exploit narratives. Kernel maintenance often offers neither. Instead, it offers a stream of narrowly described fixes whose impact depends on hardware, configuration, module loading, distribution backports, and reboot discipline.
For Windows-heavy shops, the message is not to become Linux vulnerability obsessives. It is to stop treating the Linux machines in the corner as exceptions to normal endpoint hygiene. The old laptop running a packet capture, the homelab server hosting test VMs, the dual-boot workstation used for firmware recovery, and the small appliance with a Linux kernel all deserve the same inventory and patch cadence as anything with a Windows logo.
CVE-2026-46122 will probably be remembered, if at all, as a minor driver bounds-check fix for legacy Broadcom Wi-Fi hardware. But its real value is as a clean example of where kernel security is going: less faith in firmware, more enforcement in production paths, and a steady conversion of “this should never happen” into “if this happens, stop.” That is not glamorous work, but it is the work that keeps old code from becoming tomorrow’s incident report.

References​

  1. Primary source: NVD / Linux Kernel
    Published: 2026-05-29T01:07:28-07:00
  2. Security advisory: MSRC
    Published: 2026-05-29T01:07:28-07:00
    Original feed URL
  3. Related coverage: spinics.net
  4. Related coverage: lists.debian.org
  5. Related coverage: android.googlesource.com
  6. Related coverage: kernel.org
 

Back
Top