CVE-2026-98198 hwmon: (pwm-fan) Stop RPM timer before freeing tach data

Not scored Published Updated

A use-after-free in the Linux kernel PWM fan driver allows local attackers to cause a system crash or potentially execute code during device unbinding.

Exploited in the wild
Not known
Login needed
An administrator
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2026-98198?

CVE-2026-98198 is an use after free vulnerability in Linux, published on 6 Oct 2026. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

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

hwmon: (pwm-fan) Stop RPM timer before freeing tach data

sample_timer() rearms the RPM timer and accesses the devm-managed ctx->tachs and ctx->pulses_per_revolution arrays. The cleanup action which stops the timer is registered before those arrays are allocated.

Since devres releases entries in reverse order, driver detach can free the arrays before pwm_fan_cleanup() shuts down the timer. A timer expiry in that window accesses the freed tach data.

With a KASAN kernel, a test-only kprobe delayed entry to pwm_fan_cleanup() while normal sysfs unbind ran. Each of three runs reported three four-byte reads and two four-byte writes in sample_timer() after its backing devm allocations had been freed. The helper did not invoke the timer callback, cleanup actions or free functions.

With the fix, three matching unbind runs completed without KASAN, BUG, WARNING, Oops or panic. Instrumentation confirmed that timer retirement completed before the first timer backing allocation was released.

Split timer retirement from the power cleanup and register its devres action after the timer backing data and IRQ actions are installed. This preserves the early power rollback action while ensuring the timer is retired before its backing data is released. Use timer_shutdown_sync() because the callback can rearm itself.

Which versions are affected by CVE-2026-98198?

How do I fix CVE-2026-98198?

Apply the vendor's patch.

Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.

Is CVE-2026-98198 being exploited?

There is no known exploitation of CVE-2026-98198 in the wild and no public exploit code.

Sources

Also known as AZL-106185, BELL-CVE-2026-98198, DEBIAN-CVE-2026-98198, GHSA-vr2q-55hv-76j4, UBUNTU-CVE-2026-98198.

Is CVE-2026-98198 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free