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

s390/dasd: Fix undersized format-check buffer

fmt_buffer_size in dasd_eckd_check_device_format() is declared as
int, even though one of the multiplicands, sizeof(struct eckd_count),
is a size_t. The expression

trkcount * rpt_max * sizeof(struct eckd_count)

is therefore correctly evaluated at 64-bit width, but the result is
silently truncated when it is stored back into the 32-bit
fmt_buffer_size variable. For a sufficiently large track range
(start_unit/stop_unit are caller-controlled) this truncation
yields a buffer size far smaller than the number of tracks actually
requested. kzalloc() then succeeds with an undersized allocation,
while the subsequent channel program build still operates on the
untruncated track count and writes past the end of that buffer.

Compute the buffer size with check_mul_overflow() and keep it in a
size_t, so that a value that no longer fits results in -EINVAL
instead of a silently truncated allocation size.
Published: 2026-08-28
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel contains a bug in the s390 Dasd ECKD device checker. The calculation of the format‑check buffer size uses a 32‑bit integer to store a value that may exceed 2^32‑1, so truncation silently occurs. This causes kzalloc to allocate a buffer that is too small while the driver later writes to the full length of the track count. The result is a heap buffer overflow that can corrupt memory and, if exploited, can lead to arbitrary code execution within the kernel.

Affected Systems

The flaw appears in the dasd module of the Linux kernel on systems that use the s390 architecture. Any kernel containing an unpatched dasd_eckd_check_device_format function is affected. The list of insecure kernel versions is not provided, but all builds before the described commit are vulnerable.

Risk and Exploitability

The CVSS score is not listed, and the EPSS score is unavailable, but the vulnerability qualifies as a critical heap buffer overflow that can lead to privilege escalation or denial of service. The KEV catalog does not list it yet. An attacker would need local access to a DASD device on the s390 platform and sufficient privileges to trigger the device check, which is typically available to administrators or users with proper device permissions. The lack of an external exploitation score means organizations should treat it as high risk until a patch is deployed.

Generated by OpenCVE AI on August 28, 2026 at 10:27 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel that includes the patch to change fmt_buffer_size to size_t and use check_mul_overflow
  • Restart the system or reload the dasd module so the updated code is in use
  • If an immediate kernel update is not possible, restrict user access to DASD devices or unload the dasd module if it is not required

Generated by OpenCVE AI on August 28, 2026 at 10:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 28 Aug 2026 10:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-122

Fri, 28 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: s390/dasd: Fix undersized format-check buffer fmt_buffer_size in dasd_eckd_check_device_format() is declared as int, even though one of the multiplicands, sizeof(struct eckd_count), is a size_t. The expression trkcount * rpt_max * sizeof(struct eckd_count) is therefore correctly evaluated at 64-bit width, but the result is silently truncated when it is stored back into the 32-bit fmt_buffer_size variable. For a sufficiently large track range (start_unit/stop_unit are caller-controlled) this truncation yields a buffer size far smaller than the number of tracks actually requested. kzalloc() then succeeds with an undersized allocation, while the subsequent channel program build still operates on the untruncated track count and writes past the end of that buffer. Compute the buffer size with check_mul_overflow() and keep it in a size_t, so that a value that no longer fits results in -EINVAL instead of a silently truncated allocation size.
Title s390/dasd: Fix undersized format-check buffer
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-28T06:53:10.028Z

Reserved: 2026-08-26T14:34:25.787Z

Link: CVE-2026-80710

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-28T08:16:56.633

Modified: 2026-08-28T08:16:56.633

Link: CVE-2026-80710

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T10:30:17Z

Weaknesses
  • CWE-122

    Heap-based Buffer Overflow