CVE-2026-74470

scsi: scsi_debug: Fix REPORT ZONES alloc_len underflow OOB write

State
Published
Severity
7.8 High
Published
Aug 15, 2026
Updated
Oct 16, 2026
Reserved
Aug 15, 2026

Read the record on cve.org

Description

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

scsi: scsi_debug: Fix REPORT ZONES alloc_len underflow OOB write

resp_report_zones() sizes the reply buffer from the CDB allocation length. The v3 fix rounds alloc_len up with ALIGN() before deriving the descriptor count:

rep_max_zones = (ALIGN((u64)alloc_len, RZONES_DESC_HD) - RZONES_DESC_HD) >> ilog2(RZONES_DESC_HD); arr_len = (u64)RZONES_DESC_HD * (rep_max_zones + 1);

For alloc_len in 0xFFFFFFC1..0xFFFFFFFF, ALIGN() rounds up to 0x100000000, so arr_len is 4 GB. On 32-bit, kzalloc()'s size_t is 32-bit and truncates 0x100000000 to 0; kzalloc(0) returns ZERO_SIZE_PTR, which passes the !arr check, and desc = arr + 64 is then dereferenced in the loop -> out-of-bounds write / panic.

Clamp rep_max_zones to devip->nr_zones. The loop already stops at sdebug_capacity (after nr_zones zones), so a report can never hold more than nr_zones descriptors; the clamp does not change the report, it only bounds arr_len to (nr_zones + 1) * RZONES_DESC_HD, a real device property that can never reach 0x100000000.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • ebacb44cb2042b90951140eda806bedad23ef554 to before 7b615fc139e35c81077046df44725c532f7e2404Affected
  • 7db0e0c8190a086ef92ce5bb960836cde49540aa to before 5d3e1d006bbb543259f9e31824caadbfff6a5465Affected
  • 7db0e0c8190a086ef92ce5bb960836cde49540aa to before 49e5b25a0b74dbac595f122e5608fdce2918cc4eAffected
  • 7db0e0c8190a086ef92ce5bb960836cde49540aa to before 495058429ca55ab7fcc21977b63b92907ad68066Affected
  • 7db0e0c8190a086ef92ce5bb960836cde49540aa to before 2047ed09bf13453b7d6f9431b112ec07984dd69bAffected
  • 7db0e0c8190a086ef92ce5bb960836cde49540aa to before d6e6da6bc3b53231fac77ffab428da8173ee729cAffected
  • 7db0e0c8190a086ef92ce5bb960836cde49540aa to before 93dde0bf2f39a0f9f57fd610aa3201ce5b753433Affected
  • c4d2d7c935a4ad20e8e726ca10499cefe4537103Affected
  • 5.15.8 to before 5.15.217Affected
  • 5.10.85 to before 5.11Affected
LinuxLinux
  • 5.16Affected
  • before 5.16Not affected
  • 5.15.217 through 5.15.*Not affected
  • 6.1.183 through 6.1.*Not affected
  • 6.6.151 through 6.6.*Not affected
  • 6.12.103 through 6.12.*Not affected
  • 6.18.44 through 6.18.*Not affected
  • 7.1.8 through 7.1.*Not affected
  • 7.2 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.