CVE-2026-22978 Overview
CVE-2026-22978 is an information disclosure vulnerability in the Linux kernel's wireless extensions (WEXT) subsystem. The flaw stems from an uninitialized 32-bit padding hole in struct iw_point on 64-bit architectures. When the kernel copies this structure to user space without zeroing it, 32 bits of kernel memory contents leak to unprivileged callers. The vulnerability affects multiple Linux kernel branches, including 6.19 release candidates rc1 through rc4. Exploitation requires local access with low privileges and no user interaction.
Critical Impact
A local user can read 32 bits of uninitialized kernel stack or heap memory per request, potentially exposing pointers, tokens, or other sensitive data useful for chaining further attacks.
Affected Products
- Linux Kernel (multiple stable branches prior to the fix commits)
- Linux Kernel 6.19-rc1 through 6.19-rc4
- Distributions shipping affected wireless extensions code
Discovery Timeline
- 2026-01-23 - CVE-2026-22978 published to the National Vulnerability Database
- 2026-02-26 - Last updated in NVD database
Technical Details for CVE-2026-22978
Vulnerability Analysis
The vulnerability resides in the wireless extensions (WEXT) interface used to configure Wi-Fi devices through legacy ioctl calls. The kernel passes struct iw_point between user space and kernel space when handling wireless configuration requests. On 64-bit architectures, the compiler inserts a 4-byte alignment hole between the 64-bit pointer field and the two 16-bit length and flags fields. This hole is never explicitly initialized by the kernel before the structure is copied back to user space.
The issue is categorized as an information exposure flaw caused by uninitialized memory use. While the disclosed data is limited to 32 bits per call, repeated invocations can enable an attacker to harvest kernel pointers, defeat Kernel Address Space Layout Randomization (KASLR), or recover transient secrets residing on the stack. The fix forces the structure to be zeroed before population, eliminating the leak path.
Root Cause
The root cause is a structure padding gap not cleared prior to a copy_to_user operation. The struct iw_point layout contains:
struct iw_point {
void __user *pointer; /* Pointer to data in user space */
__u16 length; /* Number of fields or size in bytes */
__u16 flags; /* Optional params */
};
On 64-bit systems, pointer consumes 8 bytes, and the two 16-bit fields total 4 bytes. The compiler pads the structure to 16 bytes for alignment, leaving 4 bytes of uninitialized memory between the declared fields and the end of the structure.
Attack Vector
Exploitation requires local code execution with low privileges. An attacker invokes the affected wireless extension ioctl interface, prompting the kernel to populate and return struct iw_point to user space. Because the padding bytes are never zeroed, whatever data previously occupied that stack or heap location is returned to the caller. The attacker reads these bytes from their user space buffer and aggregates leaked fragments across many calls to reconstruct sensitive kernel state.
No remote attack surface exists. The vulnerability requires the local attacker to have access to wireless extension ioctl handlers, which on most distributions are reachable by unprivileged users. See the upstream patch commit for the corrected initialization path.
Detection Methods for CVE-2026-22978
Indicators of Compromise
- Unusual volume of SIOCGIW*ioctl calls from non-administrative processes targeting wireless interfaces
- Local processes repeatedly invoking wireless extension queries without legitimate Wi-Fi configuration use cases
- Userland tooling enumerating iw_point responses outside expected network management binaries such as wpa_supplicant or iwconfig
Detection Strategies
- Audit ioctl syscalls invoked against network interfaces using auditd rules to identify abnormal callers
- Compare kernel package versions across the fleet against the patched commits listed in the vendor advisories
- Use kernel address sanitizer (KMSAN) instrumentation in test environments to surface uninitialized memory reads in the WEXT path
Monitoring Recommendations
- Monitor for new or unsigned binaries issuing wireless ioctl operations on production systems
- Track kernel build versions through configuration management to confirm patch deployment
- Alert on user-space processes attempting to enumerate kernel pointers or perform pattern matching on returned ioctl buffers
How to Mitigate CVE-2026-22978
Immediate Actions Required
- Apply the upstream Linux kernel patches referenced in the kernel.org commit chain and reboot affected systems
- Inventory hosts running 6.19 release candidates and unpatched stable branches, prioritizing multi-tenant and shared workstations
- Restrict local access to systems pending patch rollout to reduce the population of users who can trigger the leak
Patch Information
The Linux kernel maintainers resolved this issue by zero-initializing struct iw_point before populating it for return to user space. The fix is distributed across multiple stable branches in commits including 024f71a5, 21cbf883, 442ceac0, a3827e31, d21ec867, d943b5f5, and e3c35177. Consult your distribution's kernel update channel for the corresponding backported release. The full commit set is available through the kernel.org stable tree.
Workarounds
- Disable the legacy wireless extensions interface on systems that do not require it by building kernels without CONFIG_WIRELESS_EXT
- Restrict access to wireless ioctl interfaces through Linux Security Modules such as SELinux or AppArmor policies
- Limit local shell access on multi-user systems until patched kernels are deployed
# Verify the running kernel version and patch status
uname -r
# Check distribution package for kernel updates (example: Debian/Ubuntu)
apt list --upgradable | grep linux-image
# Example: rebuild kernel without legacy wireless extensions
scripts/config --disable CONFIG_WIRELESS_EXT
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

