← Back to CVE Explorer

CVE-2026-99086

Full vulnerability record from the local CVENow database.

Description

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.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-10-23 13:17:33.113000
Last modified
2026-10-23 13:17:33.113000
View original CVE JSON
{
  "id": "CVE-2026-99086",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-10-23T13:17:33.113",
  "lastModified": "2026-10-23T13:17:33.113",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndm-integrity: validate the superblock on resume\n\ndm_integrity_resume() re-reads the superblock from the device so that it\npicks up the flags and the recalculate position. It performs no\nvalidation on the result, while the constructor validates the superblock\nit reads and sizes all the in-memory structures according to it. The user\nmay modify the superblock on the underlying device while the dm-integrity\ndevice is suspended, so that the two no longer agree.\n\nIn particular, access_journal_data() shifts the journal entry index by\nic->sb->log2_sectors_per_block, while ic->journal_section_sectors and the\njournal page list were computed with the value that was present at\nconstructor time. Increasing log2_sectors_per_block makes the index run\npast the end of the journal, and dm-integrity then writes 512 bytes\nthrough lowmem_page_address(NULL).\n\nSnapshot the validated superblock in the constructor and refuse to resume\nif any of the fields that describe the on-disk geometry changed."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/md/dm-integrity.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "38625191f32f77a9d5fc7cc15f4f9b78768bfb33",
              "lessThan": "454b67fcc28c18502e47dfb9f067b04c28628ada",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "118ba36e446c01e3cd34b3eedabf1d9436525e1d",
              "lessThan": "e9ec5cbbaf4dd3a02ae3d81719f4fcb9b609aa8e",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "118ba36e446c01e3cd34b3eedabf1d9436525e1d",
              "lessThan": "fc79aeb86a2c244c1f1894e2d8f2966fe2b60fa2",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "824b9c27d7b600520b95f0cab95a47d1b08a9483",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "fb49f209995f729053c6ee728436f98d78a49b6f",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "c6138af1f5454c2631a837916fda958ea72c0d71",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "3ff70e2e31c419e2230d0c66cb2bfb3b1b414b7f",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6.18.16",
              "lessThan": "6.18.58",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "6.1.165",
              "lessThan": "6.2",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "6.6.128",
              "lessThan": "6.7",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "6.12.75",
              "lessThan": "6.13",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "6.19.6",
              "lessThan": "6.20",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/md/dm-integrity.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "7.0",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "7.0",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.58",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.12",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/454b67fcc28c18502e47dfb9f067b04c28628ada",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/e9ec5cbbaf4dd3a02ae3d81719f4fcb9b609aa8e",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/fc79aeb86a2c244c1f1894e2d8f2966fe2b60fa2",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}