CVE-2026-98410 in Linuxinfo

Summary

by MITRE • 10/15/2026

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

watchdog: da9063: fix suspend/resume handling of HW_RUNNING watchdog

da9063_wdt_suspend() and da9063_wdt_resume() only check watchdog_active(), when the watchdog is left running by the driver sets WDOG_HW_RUNNING in da9063_wdt_probe() but userspace never opens the device, so WDOG_ACTIVE remains cleared, the wdt_disable() will not be executed in da9063_wdt_suspend. In this case, the suspend callback is a no-op and the watchdog keeps counting during system suspend, leading to an unexpected system reset. Check WDOG_HW_RUNNING and wdd,can fix this issue.

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 10/15/2026

The vulnerability identified within the Linux kernel's da9063 hardware watchdog driver stems from an incorrect logic flow in the power management callbacks responsible for handling device suspension and resumption. Specifically, the functions da9063_wdt_suspend and da9063_wdt_resume rely exclusively on the WDOG_ACTIVE flag to determine whether the watchdog timer should be disabled before entering a low-power state or re-enabled upon resume. This approach fails to account for scenarios where the hardware watchdog is initialized as permanently running by setting the WDOG_HW_RUNNING flag during the probe phase, yet remains unmanaged by user-space applications because no process has opened the device character file. In such configurations, the internal active status of the watchdog driver instance remains cleared despite the underlying hardware timer being operational and counting down independently of software control.

When the system attempts to suspend, the kernel invokes the suspend callback which checks for WDOG_ACTIVE. Since this flag is unset due to the lack of an open file descriptor by user-space, the conditional logic prevents the execution of wdt_disable. Consequently, the hardware watchdog continues its countdown uninterrupted during the entire suspension period. If the timeout interval configured in the hardware register expires while the system is suspended or shortly after resuming before a new count can be initiated, the watchdog triggers a hard reset. This results in an unexpected and potentially disruptive system reboot that violates expected power management behavior and stability guarantees provided by the operating system.

This flaw represents a classic case of improper resource state tracking where software abstraction layers do not accurately reflect hardware reality. From a vulnerability classification perspective, this aligns with CWE-829, Inclusion of Functionality from Untrusted Control Sphere, as the driver fails to properly isolate or manage hardware resources that operate outside standard user-space control mechanisms. Furthermore, it relates to CWE-367, Time-of-check Time-of-use (TOCTOU) race conditions in a broader sense regarding state consistency, although more accurately described under CWE-459, Incomplete Cleanup of Resources upon Exit or Failure, because the driver does not ensure proper cleanup or disablement of hardware timers during power transitions when they are managed by firmware or hardware rather than software.

The operational impact is primarily centered on system reliability and availability. For embedded systems utilizing the DA9063 PMIC with this specific watchdog configuration, any attempt to suspend the device can lead to a denial of service via an involuntary hard reset. This is particularly problematic in environments requiring long uptime or predictable power cycling behavior, such as industrial control systems or IoT devices where unexpected reboots can cause data corruption or operational downtime. The issue does not typically allow for remote code execution or privilege escalation but severely compromises the integrity and availability of the host system by introducing non-deterministic reboot events tied to standard OS power management operations.

To mitigate this vulnerability, developers must modify the suspend and resume callbacks in da9063_wdt.c to explicitly check for the WDOG_HW_RUNNING flag rather than relying solely on WDOG_ACTIVE. If the hardware watchdog is marked as running by the driver itself during initialization, the suspend routine should unconditionally disable or pause the timer before entering low-power states, regardless of whether user-space has opened the device node. Similarly, the resume function must ensure that if the watchdog was active prior to suspension and remains configured for automatic operation, it is properly re-initialized with a fresh timeout value to prevent immediate expiration upon resumption. This ensures that hardware-managed timers are treated as critical resources requiring explicit management during power state transitions, aligning driver behavior with expected system stability standards.

Responsible

Linux

Reservation

09/25/2026

Disclosure

10/15/2026

Moderation

accepted

EPSS

0.00215

KEV

no

Activities

very low

Sources

Want to know what is going to be exploited?

We predict KEV entries!