CVE-2026-90185

null_blk: serialize configfs attribute stores with the lock

State
Published
Severity
Not scored
Published
Sep 17, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

null_blk: serialize configfs attribute stores with the lock

The NULLB_DEVICE_ATTR _store takes no lock: apply_fn attributes (submit_queues, poll_queues) get dev->NAME written again after apply_fn 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 apply_fn attributes, once one store's apply_fn has reconfigured the hardware, a second (losing) store can still overwrite dev->NAME afterwards. This leaves dev->submit_queues out of sync with the live queue count, which is later caught by the WARN_ON_ONCE() in null_map_queues().

For !apply_fn attributes, power_store()'s null_add_dev() 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, zone_nr_conv can be pushed above nr_zones after it has already been clamped, leading to an out-of-bounds dev->zones[] access.

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

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 45919fbfe1c487c17ea1d198534339a5e8abeae3 to before 8e839ed5210399a0330a8a6c5885c1d40a537c6dAffected
  • 45919fbfe1c487c17ea1d198534339a5e8abeae3 to before 88d806d0e1d36246208386a8e55b511c1b3d647cAffected
  • 45919fbfe1c487c17ea1d198534339a5e8abeae3 to before 3945ce8cbce4e328e6fdf0b522dc71e340de19dbAffected
  • 45919fbfe1c487c17ea1d198534339a5e8abeae3 to before 65cae82fd3c39b53430672cb9e3ecd267471a6ceAffected
  • 45919fbfe1c487c17ea1d198534339a5e8abeae3 to before c70994c2862b05e44728912b2ea9487d31e2aea7Affected
  • 45919fbfe1c487c17ea1d198534339a5e8abeae3 to before 7e7fff51808237703a3a1df6dd5cae1dfd1db86dAffected
LinuxLinux
  • 5.5Affected
  • before 5.5Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.