---
id: CVE-2026-90052
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  dm-integrity: fix buffer overflow with keyed discard

  Since commit 68c5c42567bc ("dm-integrity: replace forgeable discard
  filler with a keyed sector marker"), integrity…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  dm-integrity: fix buffer overflow with keyed discard

  Since commit 68c5c42567bc ("dm-integrity: replace forgeable discard
  filler with a keyed sector marker"), integrity…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 5c58ea19a909ef6bed4f0f824e9cd7e30d7e4775 <
    9988c1c9e0d1c78391e3d8e2817beb667470c76f
  - >-
    Linux >= 6228722c27304e4682cddc1fede03898f87e4414 <
    dd08a645195f410f2dcaa40de379a45ce110e873
  - >-
    Linux >= 68c5c42567bc462139128968ebbfadd0aefff519 <
    59e6f919d77d72ec79cbf171256f2f7819737580
  - Linux 7.3-rc1
published: '2026-09-17'
updated: '2026-09-18'
sourceUpdated: '2026-09-18T18:17:39.910'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-90052'
references:
  - url: 'https://git.kernel.org/stable/c/59e6f919d77d72ec79cbf171256f2f7819737580'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/9988c1c9e0d1c78391e3d8e2817beb667470c76f'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/dd08a645195f410f2dcaa40de379a45ce110e873'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
epss: 0.00187
epssPercentile: 0.07365
ingestedAt: '2026-09-17T16:21:47.904Z'
---

## Overview

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

dm-integrity: fix buffer overflow with keyed discard

Since commit 68c5c42567bc ("dm-integrity: replace forgeable discard
filler with a keyed sector marker"), integrity_metadata computes a
checksum for every discarded block into the "checksums" buffer.
integrity_sector_checksum always writes the whole digest. So if the tag
size is smaller than the digest size, the checksum of the last block
that fits into the buffer is written past the end of it. For example,
with hmac(sha256) and tag size 16, a 4MiB discard writes 16 bytes past
the kmalloc'ed page.

Fix this by subtracting extra_space from the buffer size when computing
max_blocks, like we do for writes.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
