scsi: scsi_debug: Fix REPORT ZONES alloc_len underflow OOB write (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.13 % · percentile 3 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Received
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.
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
Scores
| Version | Score | Vector | Scored by |
|---|---|---|---|
| CVSS 3.1 | HIGH 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | Linux |
| CVSS 3.1 | HIGH 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | NVD · 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary) |
European references
- ENISA EUVD · EUVD-2026-59663
- GCVE · GCVE-0-2026-74470
CERT-FR advisories
- CERTFR-2026-AVI-1286 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1232 — Multiples vulnérabilités dans le noyau Linux de Debian LTS · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1163 — Multiples vulnérabilités dans le noyau Linux de Debian LTS · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1090 — Multiples vulnérabilités dans le noyau Linux de Debian · cert.ssi.gouv.fr
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected ebacb44cb2042b90951140eda806bedad23ef554 < 7b615fc139e35c81077046df44725c532f7e2404 ; affected 7db0e0c8190a086ef92ce5bb960836cde49540aa < 5d3e1d006bbb543259f9e31824caadbfff6a5465 ; affected 7db0e0c8190a086ef92ce5bb960836cde49540aa < 49e5b25a0b74dbac595f122e5608fdce2918cc4e ; affected 7db0e0c8190a086ef92ce5bb960836cde49540aa < 495058429ca55ab7fcc21977b63b92907ad68066 ; affected 7db0e0c8190a086ef92ce5bb960836cde49540aa < 2047ed09bf13453b7d6f9431b112ec07984dd69b ; affected 7db0e0c8190a086ef92ce5bb960836cde49540aa < d6e6da6bc3b53231fac77ffab428da8173ee729c |
| Linux · Linux | affected 5.16 ; unaffected 0 < 5.16 ; unaffected 5.15.217 ≤ 5.15.* ; unaffected 6.1.183 ≤ 6.1.* ; unaffected 6.6.151 ≤ 6.6.* ; unaffected 6.12.103 ≤ 6.12.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |