CVE-2026-98935 in Linuxinfo

Summary

by MITRE • 10/23/2026

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

rtc: dev: zero-initialize struct rtc_wkalrm to prevent information leak

The struct rtc_wkalrm has padding holes after the 'pending' member. When returned to userspace via the RTC_WKALRM_RD ioctl, uninitialized kernel stack data residing in these holes may be leaked.

Zero-initialize the struct at declaration to eliminate this information leak risk.

Fixes smatch warnings: - drivers/rtc/dev.c:392 rtc_dev_ioctl() warn: check that 'alarm' doesn't leak information (struct has a hole after 'pending')

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 10/23/2026

The Linux kernel's real-time clock subsystem contains an information disclosure vulnerability within the device interface layer, specifically affecting the handling of alarm configuration structures. The core issue resides in the rtc_wkalrm structure used to manage wake alarms for system power management and scheduling operations. When user-space applications interact with the hardware through the RTC_WKALRM_RD ioctl command, they request a snapshot of the current alarm settings from the kernel. This operation involves copying data from internal kernel structures back into buffers provided by the requesting process.

The technical flaw stems from memory layout inefficiencies within the rtc_wkalrm structure definition. Due to alignment requirements for specific members such as tm_sec or other time-related fields, the compiler inserts padding bytes after the pending member variable. These padding regions constitute uninitialized holes in the stack allocation when the struct is declared locally within the ioctl handler function. Because these memory locations are not explicitly cleared before being populated with valid alarm data, they retain whatever residual values were left there by previous kernel operations or context switches.

When the structure is subsequently copied to user space via standard copy-to-user mechanisms, this uninitialized stack data is included in the transmission alongside legitimate configuration parameters. This results in a classic information leak where sensitive kernel memory contents are exposed to unprivileged processes. The smatch static analysis tool identified this specific pattern as a potential security risk because it detected that the alarm structure contains holes after the pending field which might not be fully overwritten before being sent out, thereby violating principles of secure data handling and isolation between kernel space and user space.

From an operational perspective, while the immediate impact may seem limited to local information disclosure, such leaks can provide attackers with valuable intelligence about kernel memory layout, stack addresses, or potentially other sensitive data stored in adjacent variables on the same stack frame. This aligns with CWE-200 which categorizes exposure of sensitive information to unauthorized actors as a significant weakness. In environments where privilege escalation is targeted, having access to kernel pointers can aid in bypassing address space layout randomization protections or crafting more reliable exploitation chains against other vulnerabilities present in the system.

The remediation strategy implemented involves zero-initializing the rtc_wkalrm structure at the point of declaration within the ioctl handler function. By ensuring that all bytes of the struct, including padding holes, are set to zero before any data population occurs, the risk of leaking stale kernel stack content is eliminated. This defensive programming practice ensures that only explicitly assigned values are transmitted to user space, maintaining strict boundaries between privileged and unprivileged memory regions.

This fix corresponds to ATT&CK technique T1083 which describes file or directory discovery through information gathering activities performed by adversaries during the early stages of an attack lifecycle. Although this vulnerability does not directly allow code execution, it facilitates reconnaissance efforts that can lead to more severe compromises if left unpatched in production environments running vulnerable kernel versions. System administrators should apply updates containing this patch and verify compliance with secure coding standards that mandate explicit initialization of all structure members before use or transmission across security boundaries.

Responsible

Linux

Reservation

09/25/2026

Disclosure

10/23/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!