---
id: CVE-2026-99086
title: 'dm-integrity: validate the superblock on resume'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  dm-integrity: validate the superblock on resume

  dm_integrity_resume() re-reads the superblock from the device so that it
  picks up the flags and the recalculate positio…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 38625191f32f77a9d5fc7cc15f4f9b78768bfb33 <
    454b67fcc28c18502e47dfb9f067b04c28628ada
  - >-
    Linux >= 118ba36e446c01e3cd34b3eedabf1d9436525e1d <
    e9ec5cbbaf4dd3a02ae3d81719f4fcb9b609aa8e
  - >-
    Linux >= 118ba36e446c01e3cd34b3eedabf1d9436525e1d <
    fc79aeb86a2c244c1f1894e2d8f2966fe2b60fa2
  - Linux 824b9c27d7b600520b95f0cab95a47d1b08a9483
  - Linux fb49f209995f729053c6ee728436f98d78a49b6f
  - Linux c6138af1f5454c2631a837916fda958ea72c0d71
  - Linux 3ff70e2e31c419e2230d0c66cb2bfb3b1b414b7f
  - Linux >= 6.18.16 < 6.18.58
  - Linux >= 6.1.165 < 6.2
  - Linux >= 6.6.128 < 6.7
  - Linux >= 6.12.75 < 6.13
  - Linux >= 6.19.6 < 6.20
  - Linux 7.0
published: '2026-10-23'
updated: '2026-10-23'
sourceUpdated: '2026-10-23T12:45:04.496Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-99086'
references:
  - url: 'https://git.kernel.org/stable/c/454b67fcc28c18502e47dfb9f067b04c28628ada'
  - url: 'https://git.kernel.org/stable/c/e9ec5cbbaf4dd3a02ae3d81719f4fcb9b609aa8e'
  - url: 'https://git.kernel.org/stable/c/fc79aeb86a2c244c1f1894e2d8f2966fe2b60fa2'
tags:
  - cve.org
ingestedAt: '2026-10-23T13:24:55.508Z'
---

## Overview

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

dm-integrity: validate the superblock on resume

dm_integrity_resume() re-reads the superblock from the device so that it
picks up the flags and the recalculate position. It performs no
validation on the result, while the constructor validates the superblock
it reads and sizes all the in-memory structures according to it. The user
may modify the superblock on the underlying device while the dm-integrity
device is suspended, so that the two no longer agree.

In particular, access_journal_data() shifts the journal entry index by
ic->sb->log2_sectors_per_block, while ic->journal_section_sectors and the
journal page list were computed with the value that was present at
constructor time. Increasing log2_sectors_per_block makes the index run
past the end of the journal, and dm-integrity then writes 512 bytes
through lowmem_page_address(NULL).

Snapshot the validated superblock in the constructor and refuse to resume
if any of the fields that describe the on-disk geometry changed.

## Affected

- `Linux >= 38625191f32f77a9d5fc7cc15f4f9b78768bfb33 < 454b67fcc28c18502e47dfb9f067b04c28628ada`
- `Linux >= 118ba36e446c01e3cd34b3eedabf1d9436525e1d < e9ec5cbbaf4dd3a02ae3d81719f4fcb9b609aa8e`
- `Linux >= 118ba36e446c01e3cd34b3eedabf1d9436525e1d < fc79aeb86a2c244c1f1894e2d8f2966fe2b60fa2`
- `Linux 824b9c27d7b600520b95f0cab95a47d1b08a9483`
- `Linux fb49f209995f729053c6ee728436f98d78a49b6f`
- `Linux c6138af1f5454c2631a837916fda958ea72c0d71`
- `Linux 3ff70e2e31c419e2230d0c66cb2bfb3b1b414b7f`
- `Linux >= 6.18.16 < 6.18.58`
- `Linux >= 6.1.165 < 6.2`
- `Linux >= 6.6.128 < 6.7`
- `Linux >= 6.12.75 < 6.13`
- `Linux >= 6.19.6 < 6.20`
- `Linux 7.0`

## Remediation

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