CVE-2026-98698 in Linuxinfo

Summary

by MITRE • 10/18/2026

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

wifi: mac80211: handle empty FILS association request payload

fils_encrypt_assoc_req() accepts a (Re)Association Request frame whose last element is the FILS Session element. crypt_len is then zero and aes_siv_encrypt() is called with an empty plaintext.

kmemdup() returns ZERO_SIZE_PTR for a zero-length allocation, so the unconditional sg_init_one() puts an invalid page into the scatterlist. With CONFIG_DEBUG_SG this triggers a kernel BUG in sg_set_buf(); without the debug check the bogus page is handed to the crypto backend.

AES-SIV is defined for empty plaintext and the S2V result is then the complete output, so handle this case before the CTR step, which has nothing to encrypt.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Analysis

by VulDB Data Team • 10/19/2026

The vulnerability identified in the Linux kernel's mac80211 subsystem involves a critical flaw in the handling of Fast Initial Link Setup (FILS) association requests during Wi-Fi authentication processes. Specifically, the function fils_encrypt_assoc_req() fails to adequately validate input parameters when processing Reassociation Request frames where the final element is the FILS Session element. In such scenarios, the calculated cryptographic length crypt_len becomes zero because there is no additional payload data beyond the session identifier itself. This edge case triggers a sequence of operations that leads to memory management errors and potential kernel instability or security breaches depending on system configuration.

The core technical flaw lies in how the code handles zero-length allocations within the encryption routine. When aes_siv_encrypt() is invoked with an empty plaintext due to the aforementioned condition, it proceeds to call kmemdup() for buffer allocation. According to Linux kernel memory management conventions, kmemdup returns ZERO_SIZE_PTR when requested to allocate a size of zero bytes rather than returning NULL or allocating a minimal dummy block. The subsequent unconditional invocation of sg_init_one() attempts to initialize a scatterlist entry using this invalid pointer. This action results in the insertion of an improper page reference into the kernel's memory management structures, which constitutes a severe violation of expected memory safety protocols and can lead to undefined behavior during execution.

The operational impact of this vulnerability varies significantly based on whether debug features are enabled within the kernel configuration. When CONFIG_DEBUG_SG is active, the system detects the invalid scatterlist entry immediately upon calling sg_set_buf(), resulting in an immediate kernel BUG that halts processing and potentially causes a denial of service through system crash or reboot. This provides a clear signal to administrators but disrupts network connectivity for affected devices. Conversely, if debug checks are disabled, which is common in production environments for performance reasons, the bogus page reference is passed directly to the cryptographic backend without validation. While AES-SIV algorithm specifications technically allow for empty plaintext inputs by defining the S2V result as the complete output, passing an invalid memory pointer bypasses these logical safeguards and exposes the system to potential exploitation vectors related to memory corruption or information disclosure if the crypto subsystem misinterprets the garbage page data.

This issue aligns with CWE-401, which describes a missing release of memory after effective use, although in this specific instance it manifests more critically as improper handling of zero-size allocations leading to invalid pointer usage akin to CWE-825 or CWE-787 depending on subsequent exploitation paths. From an attack perspective, the ability to trigger kernel crashes via malformed association frames relates to ATT&CK technique T1499, Endpoint Denial of Service, particularly when exploited remotely through wireless interfaces. Furthermore, if the invalid memory access leads to arbitrary code execution or privilege escalation due to how the crypto backend processes the corrupted scatterlist data, it could also map to CWE-787 Out-of-bounds Write or similar memory corruption vulnerabilities that compromise system integrity.

Mitigation strategies must focus on both immediate patching and long-term defensive coding practices. The primary remediation is applying the upstream kernel fix that explicitly checks for zero-length payloads before invoking encryption routines, ensuring that aes_siv_encrypt() handles empty plaintexts logically without triggering invalid scatterlist initializations. Administrators should ensure their systems are updated to versions containing this mac80211 patch. Additionally, enabling CONFIG_DEBUG_SG in development and staging environments can help detect similar memory handling errors early in the software lifecycle before they reach production deployments. Network segmentation policies limiting exposure of Wi-Fi interfaces to untrusted networks also reduce the attack surface for remote exploitation attempts targeting these wireless stack vulnerabilities.

Responsible

Linux

Reservation

09/25/2026

Disclosure

10/18/2026

Moderation

accepted

EPSS

0.00168

KEV

no

Activities

very low

Sources

Do you know our Splunk app?

Download it now for free!