CVE-2026-58084 in FreeBSDinfo

Summary

by MITRE • 08/19/2026

To retrieve the previous timer value, the kernel calls realtimer_gettime(), which obtains the current time for the timer's clock. For a timer using CLOCK_TAI this can fail when no TAI offset has been configured, but the error return was not checked, so the uninitialized output buffer was copied to userspace.

An unprivileged local user can obtain uninitialized kernel stack memory by creating a POSIX timer with CLOCK_TAI and calling timer_settime(2), potentially disclosing sensitive kernel data.

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 08/19/2026

The vulnerability described involves a critical flaw in the Linux kernel's handling of POSIX timers, specifically when utilizing the CLOCK_TAI clock source. The core issue stems from an improper error check within the realtimer_gettime() function, which is responsible for retrieving the current time associated with a timer. When this function attempts to obtain the time value for a timer configured with CLOCK_TAI, it relies on system configuration data known as the TAI offset. If no such offset has been properly configured in the kernel environment, the operation fails and returns an error code indicating failure. However, the implementation neglects to verify this return status before proceeding to copy the resulting time value into a user-space buffer. Consequently, instead of returning an appropriate error message or handling the exception gracefully, the kernel proceeds with copying whatever data currently resides in the uninitialized output buffer on the kernel stack back to the application requesting it.

This logic error results in the disclosure of sensitive information from the kernel's memory space to unprivileged local users. By creating a POSIX timer set to use CLOCK_TAI and subsequently invoking the timer_settime system call, an attacker can trigger this code path repeatedly or under specific conditions that ensure the TAI offset remains unset. The uninitialized stack memory contains remnants of previous function calls, including potentially sensitive data such as pointers, cryptographic keys, session tokens, or other kernel internal structures. Because the buffer is not cleared before being populated with valid time data in the failure case, these stale values are directly exposed to user space. This constitutes a classic information leak vulnerability where the confidentiality integrity of the operating system's memory management is compromised due to insufficient validation of function return codes and lack of proper initialization of output variables upon error conditions.

From a technical classification perspective, this flaw aligns with CWE-457, which describes the use of an uninitialized variable, as well as CWE-200, concerning exposure of sensitive information to an unauthorized actor. The attack vector is classified under Local Access within the MITRE ATT&CK framework, specifically leveraging Improper Input Validation and potentially leading to Information Discovery through Memory Content Exposure. An unprivileged local user can exploit this without requiring elevated privileges initially, making it a significant risk for multi-tenant environments or systems where users have shell access but are not expected to read kernel memory. The impact extends beyond simple data leakage; depending on the specific contents of the uninitialized stack frame, an attacker might gain insights that facilitate further exploitation attempts, such as bypassing Address Space Layout Randomization (ASLR) if pointers are leaked, although in this specific case, the primary risk is direct information disclosure.

Mitigation strategies for this vulnerability primarily involve patching the affected kernel version to include proper error handling within realtimer_gettime(). Developers must ensure that any function returning a status code indicating failure does not proceed with operations that depend on valid output data unless explicitly verified as successful. Additionally, initializing all local variables and buffers before use is a fundamental security best practice that prevents such leaks regardless of control flow errors. System administrators should apply the latest kernel updates provided by their distribution vendors to resolve this issue. Until patches are applied, restricting access to systems with known vulnerable kernels or monitoring for unusual patterns in timer-related system calls may provide limited defensive value, though complete prevention requires code-level remediation addressing both the missing error check and the initialization of output buffers.

Responsible

Freebsd

Reservation

06/29/2026

Disclosure

08/19/2026

Moderation

accepted

CPE

ready

EPSS

0.00182

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!