Skip to content
Heist/ feed
Back to feed
UnratedFix available

md: wait for behind writes before destroying bitmap

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: md: wait for behind writes before destroying bitmap __md_stop() destroyed the bitmap before calling mddev_detach(). That made mddev_detach() skip bitmap_ops->wait_behind_writes(), because the bitmap was already disconnected from mddev. This was still safe for the legacy bitmap because bitmap_destroy() waits for behind writes itself. llbitmap keeps that wait in its ->wait_behind_writes() operation instead, while ->destroy() tears down the llbitmap storage. With the old ordering, RAID1 behind-write completions could still run after llbitmap storage had been freed. Call mddev_detach() before md_bitmap_destroy() so the common detach path can wait for behind writes while the bitmap is still alive. Only destroy the bitmap after those users are gone.

Products
Kernel
Affected versions
Not specified
Fixed versions
6.18.52, 7.2.6
CVEs
CVE-2026-90278
Confirmed fixed CVEs
Not specified
Updated in this feed
8 Nov 2026, 01:38 UTC · Revision 1

Source evidence

md: wait for behind writes before destroying bitmap

core-osv · Original source

Published 17 Sept 2026, 16:08 UTC

In the Linux kernel, the following vulnerability has been resolved: md: wait for behind writes before destroying bitmap __md_stop() destroyed the bitmap before calling mddev_detach(). That made mddev_detach() skip bitmap_ops->wait_behind_writes(), because the bitmap was already disconnected from mddev. This was still safe for the legacy bitmap because bitmap_destroy() waits for behind writes itself. llbitmap keeps that wait in its ->wait_behind_writes() operation instead, while ->destroy() tears down the llbitmap storage. With the old ordering, RAID1 behind-write completions could still run after llbitmap storage had been freed. Call mddev_detach() before md_bitmap_destroy() so the common detach path can wait for behind writes while the bitmap is still alive. Only destroy the bitmap after those users are gone.

osv:CVE-2026-90278

Kernel

Fixed versions: 6.18.52, 7.2.6

Complete source record
{
  "id": "74d78b91f2b6f9b4499f636ff0b6b40e1f8e2e6d74057ebce490eeed04766267",
  "url": "https://osv.dev/vulnerability/CVE-2026-90278",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "md: wait for behind writes before destroying bitmap",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: md: wait for behind writes before destroying bitmap __md_stop() destroyed the bitmap before calling mddev_detach(). That made mddev_detach() skip bitmap_ops->wait_behind_writes(), because the bitmap was already disconnected from mddev. This was still safe for the legacy bitmap because bitmap_destroy() waits for behind writes itself. llbitmap keeps that wait in its ->wait_behind_writes() operation instead, while ->destroy() tears down the llbitmap storage. With the old ordering, RAID1 behind-write completions could still run after llbitmap storage had been freed. Call mddev_detach() before md_bitmap_destroy() so the common detach path can wait for behind writes while the bitmap is still alive. Only destroy the bitmap after those users are gone.",
    "evidence": "osv:CVE-2026-90278",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "6.18.52",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.6",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-90278",
      "aliases": [
        "CVE-2026-90278"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "5ab829f1971dc99f2aac10846c378e67fc875abc"
                },
                {
                  "fixed": "73881ff7a75913f919a1ce9d9571bfaab8e8588d"
                },
                {
                  "fixed": "4224dccd325a9380e8edfb66aad8bb5771c94222"
                },
                {
                  "fixed": "2a79365b2278f16e163e4024086105693b421601"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90278.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.18.0"
                },
                {
                  "fixed": "6.18.52"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.6"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90278.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:52.526273615Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/2a79365b2278f16e163e4024086105693b421601",
        "https://git.kernel.org/stable/c/4224dccd325a9380e8edfb66aad8bb5771c94222",
        "https://git.kernel.org/stable/c/73881ff7a75913f919a1ce9d9571bfaab8e8588d",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90278.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-90278",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90278.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-90278",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 521420,
  "published_at": "2026-09-17T16:08:09.992+00:00"
}