CVE-2026-90276: md/md-llbitmap: stop daemon timer rearm on destroy

Published Sep 17, 2026
·
Updated

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

md/md-llbitmap: stop daemon timer rearm on destroy

llbitmapdestroy() deletes pendingtimer before flushing mdllbitmapiowq. However, daemonwork can still be queued or running after the timer has been deleted, and the daemon path can arm pendingtimer again when it finds dirty chunks that are not ready to flush yet.

If that happens during teardown, pendingtimer can remain armed after llbitmap is freed and later dereference freed memory.

Add a BITMAPSHUTDOWN bit to llbitmap->flags, set it before deleting the timer, and make the timer and daemon paths stop queueing or rearming work once teardown starts. Cancel daemonwork before flushing the shared workqueue so no already queued daemon instance can race with the free. Use timershutdownsync() so a daemon instance that passed the shutdown check before teardown cannot rearm the timer afterward.

BITMAPSHUTDOWN is a runtime-only state. Mask it out when reading and updating the llbitmap superblock so the shutdown state is never loaded from disk or persisted to disk.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 17, 2026
CVE Published
via MITRE·04:08 PM
Data Sourced
via MITRE·04:08 PM
Description

Frequently Asked Questions

1

Which deployments are affected by this issue?

The issue is in the Linux kernel md llbitmap code path. It can occur when an llbitmap is being torn down while its daemon work is queued or running.

2

What conditions are needed to trigger the use-after-free?

During teardown, the daemon path must find dirty chunks that are not ready to flush and rearm the pending timer after the llbitmap has been freed. This leaves a timer that can later dereference freed memory.

3

Does the shutdown state alter bitmap data stored on disk?

No. The BITMAP_SHUTDOWN state is runtime-only and is masked when llbitmap superblock state is read or updated, so it is neither loaded from nor persisted to disk.

4

What does the fix do to prevent the race?

It marks the bitmap as shutting down before timer deletion, prevents timer and daemon paths from queueing or rearming work, cancels queued daemon work, and uses timer_shutdown_sync() to prevent a concurrent daemon instance from rearming the timer.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203