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: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Local Privilege Escalation
Action: Immediate Patch
AI Analysis

Impact

The vulnerability arises in the s390 DASD driver’s ECKD format-check function, where a 64‑bit buffer size calculation is silently truncated into a 32‑bit variable. This causes kzalloc to allocate an undersized buffer while later code writes past the end of that buffer, corrupting kernel heap memory. The resulting local heap overflow can be leveraged by an attacker with access to the affected DASD device to gain escalated privileges within the kernel.

Affected Systems

All Linux kernel builds targeting the s390 architecture that include the unpatched dasd_eckd_check_device_format function are vulnerable. This spans every distribution kernel prior to the patch that changes the fmt_buffer_size variable to a size_t and introduces a check_mul_overflow() guard. Once the patch is applied, the vulnerability is eliminated.

Risk and Exploitability

The CVSS score of 7.8 reflects a high severity local exploit. The EPSS score is less than 1 %, indicating a low but non‑zero probability of exploitation. The flaw is not listed in the CISA KEV catalog. Exploitation requires local access to a DASD device and the ability to invoke the device check, typically through administrative or privileged user rights. Based on the description, the likely attack vector is local exploitation via a legitimate DASD operation, which could lead to kernel privilege escalation if successful.

Generated by OpenCVE AI on September 2, 2026 at 02:52 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply an updated Linux kernel that incorporates the fix for fmt_buffer_size and uses check_mul_overflow()
  • After updating, restart the system or unload and reload the dasd module to ensure the patched code is loaded
  • If a kernel update cannot be performed immediately, restrict user access to DASD devices or unload the dasd module on hosts that do not require DASD functionality

Generated by OpenCVE AI on September 2, 2026 at 02:52 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 01 Sep 2026 22:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-190

Tue, 01 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-787
References
Metrics threat_severity

None

threat_severity

Moderate


Sat, 29 Aug 2026 06:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Fri, 28 Aug 2026 17:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-190

Fri, 28 Aug 2026 13:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-122

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-29T06:22:26.950Z

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-29T07:16:52.503

Link: CVE-2026-80710

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-28T00:00:00Z

Links: CVE-2026-80710 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-02T03:00:13Z

Weaknesses