Live › vulnerability › CVE-2026-98635
Go to dashboardThe Linux kernel's zone revalidation code can write past the end of the zones_cond array when a device reports more zones than the array was sized for, including counts that overflow 32 bits. The sources do not state what an attacker gets beyond an out-of-bounds kernel write.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-23 21:57 UTC. All times on this page are UTC.
Exposure requires a zoned block device, such as an SMR or ZNS disk, whose zone report the kernel processes. Systems with only ordinary non-zoned disks are unlikely to reach the vulnerable path, but the sources do not confirm that. Attack requirements beyond a malicious or faulty device are unknown.
No product ranges from the sources yet.
uname -r and compare against the kernel version that carries the upstream fix, which the sources do not namelsblk -zEach row is the first time that source carried this signal. The analyst’s rows are its own findings.
In the Linux kernel, the following vulnerability has been resolved:
scsi: block: Fix zones_cond out-of-bounds write on zone report
blk_revalidate_disk_zones() sizes the zones_cond array from the disk capacity and zone size, but the index used by blk_revalidate_zone_cond() comes from the device-driven report_zones() walk and is never checked against the array size. A device reporting more zones than fit the array makes blk_zone_set_cond() write out of bounds.
One way to reach this is a zone count exceeding 32 bits: both blk_revalidate_zone_args.nr_zones and struct zoned_disk_info.nr_zones are unsigned int, so a disk advertising more than UINT_MAX zones (e.g. 2^32 + 1024 zones of one 512-byte logical block) gets its zone count truncated to a small value, undersizing the array while the report walk keeps counting upward.
Check the index against the array size before storing the zone condition, and refuse to revalidate when the zone count does not fit 32 bits.
This page as .md · .json · in your agent: get_signal("CVE-2026-98635")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.