CVE-2026-90176 PUBLISHED

ksmbd: Do not skip lock checks for single-byte ranges

Assigner: Linux
Reserved: 11.09.2026 Published: 17.09.2026 Updated: 17.09.2026

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

ksmbd: Do not skip lock checks for single-byte ranges

check_lock_range() uses inclusive ranges. Its callers pass the end offset as start + length - 1, so start == end represents a valid single-byte range rather than an empty range.

The start == end shortcut therefore skips mandatory byte-range lock checks for one-byte reads, writes, copychunk operations and one-byte truncate ranges. A conflicting lock covering that byte is not checked and the operation is allowed to proceed.

Remove the shortcut. The truncate size == inode->i_size case is already handled by only calling check_lock_range() when the new size differs from the current file size.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 52fcbb92e0d3acfd1448b2a43b6595d540da5295 to a89cc145832e81c32199d4ca2e1ea8bd51ed601d (excl.)
  • affected from da29cd197246c85c0473259f1cad897d9d28faea to 993e0158331d37c04da18efe551b5e1e35fb3078 (excl.)
  • affected from a6f4cfa3783804336491e0edcb250c25f9b59d33 to f751d6e39d4c937c45f8fedc66699aa7d2d52288 (excl.)
  • affected from 571204e4758a528fbd67330bd4b0dfbdafb33dd8 to 84c2d8e807ac489f5c91769293fb15dfdae8bae8 (excl.)
  • affected from 5d510ac31626ed157d2182149559430350cf2104 to 07a9e289ff7edcc004f58952405f8a65c4e37512 (excl.)
  • affected from 5d510ac31626ed157d2182149559430350cf2104 to d40c24634fe077a0dc91fd11fccf44ce12b454d5 (excl.)
  • affected from 6.1.160 to 6.1.188 (excl.)
  • affected from 6.6.120 to 6.6.157 (excl.)
  • affected from 6.12.64 to 6.12.110 (excl.)
  • affected from 6.18.3 to 6.18.52 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 6.19 is affected
  • unaffected from 0 to 6.19 (excl.)
  • unaffected from 6.1.188 to 6.1.* (incl.)
  • unaffected from 6.6.157 to 6.6.* (incl.)
  • unaffected from 6.12.110 to 6.12.* (incl.)
  • unaffected from 6.18.52 to 6.18.* (incl.)
  • unaffected from 7.2.6 to 7.2.* (incl.)
  • unaffected from 7.3-rc1 to * (incl.)

References