CVE-2026-90185: null_blk: serialize configfs attribute stores with the lock

Published Sep 17, 2026
·
Updated

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

nullblk: serialize configfs attribute stores with the lock

The NULLBDEVICEATTR store takes no lock: applyfn attributes (submitqueues, pollqueues) get dev->NAME written again after applyfn returns, outside its lock; APPLY=NULL attributes are entirely lockless. configfs only serializes stores per-open-file, so concurrent stores on separate fds race.

For applyfn attributes, once one store's applyfn has reconfigured the hardware, a second (losing) store can still overwrite dev->NAME afterwards. This leaves dev->submitqueues out of sync with the live queue count, which is later caught by the WARNONONCE() in nullmapqueues().

For !applyfn attributes, powerstore()'s nulladddev() validates and builds the device under "lock" but only sets CONFIGURED afterwards. A store slipping in during this window can change a field mid-setup -- for example, zonenrconv can be pushed above nrzones after it has already been clamped, leading to an out-of-bounds dev->zones[] access.

Take "lock" in the macro around the applyfn call, the CONFIGURED test and the field write, and move it out of nullbapplysubmitqueues()/ nullbapplypollqueues() so both paths are covered once. This serializes stores with powerstore's setup and with each other.

Event History

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

Frequently Asked Questions

1

Who is exposed to this race condition?

Systems using the null_blk driver and changing its configfs attributes are exposed when stores can occur concurrently through separate file descriptors. Configfs serializes stores only per open file, not across separate opens.

2

What does an attacker or triggering process need to do?

It needs the ability to perform concurrent configfs attribute writes for a null_blk device using separate file descriptors. The race affects both attributes that invoke apply functions, such as submit_queues and poll_queues, and attributes without an apply function.

3

What are the observable consequences of a successful race?

Concurrent updates can leave dev->submit_queues inconsistent with the live queue count, which can trigger WARN_ON_ONCE() in null_map_queues(). During device setup, a raced update such as zone_nr_conv can exceed the previously clamped nr_zones value and cause an out-of-bounds dev->zones[] access.

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