Skip to content
Heist/ feed
Back to feed
UnratedFix available

mtd: mtdoops: free page bitmap when the backing MTD is removed

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: mtd: mtdoops: free page bitmap when the backing MTD is removed mtdoops_notify_add() allocates oops_page_used when the configured MTD device is registered. mtdoops_notify_remove() detaches from that device but leaves the bitmap allocated. If the same MTD device is later registered again, the add path allocates a new bitmap and overwrites the old pointer, leaking one vmalloc allocation per remove/add cycle. This is only visible when the backing MTD device can disappear and be registered again while mtdoops remains loaded, so the usual static MTD case does not expose it. Free the bitmap after unregistering the dumper and flushing the pending workers, then clear the pointer and page count before a later attach can allocate fresh state. Clearing the pointer also keeps the module exit path from freeing the same bitmap a second time after a remove event.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.270, 5.15.221, 6.1.188, 6.12.110, 6.18.51, 6.6.157, 7.2.5
CVEs
CVE-2026-89953
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 19:45 UTC · Revision 1

Source evidence

mtd: mtdoops: free page bitmap when the backing MTD is removed

core-osv · Original source

Published 16 Sept 2026, 10:32 UTC

In the Linux kernel, the following vulnerability has been resolved: mtd: mtdoops: free page bitmap when the backing MTD is removed mtdoops_notify_add() allocates oops_page_used when the configured MTD device is registered. mtdoops_notify_remove() detaches from that device but leaves the bitmap allocated. If the same MTD device is later registered again, the add path allocates a new bitmap and overwrites the old pointer, leaking one vmalloc allocation per remove/add cycle. This is only visible when the backing MTD device can disappear and be registered again while mtdoops remains loaded, so the usual static MTD case does not expose it. Free the bitmap after unregistering the dumper and flushing the pending workers, then clear the pointer and page count before a later attach can allocate fresh state. Clearing the pointer also keeps the module exit path from freeing the same bitmap a second time after a remove event.

osv:CVE-2026-89953

Kernel

Fixed versions: 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.51, 7.2.5

Complete source record
{
  "id": "002e487824572ac6e6075c72a087dc7add933ce983172a1e134e4508870b03fe",
  "url": "https://osv.dev/vulnerability/CVE-2026-89953",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "mtd: mtdoops: free page bitmap when the backing MTD is removed",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: mtd: mtdoops: free page bitmap when the backing MTD is removed mtdoops_notify_add() allocates oops_page_used when the configured MTD device is registered. mtdoops_notify_remove() detaches from that device but leaves the bitmap allocated. If the same MTD device is later registered again, the add path allocates a new bitmap and overwrites the old pointer, leaking one vmalloc allocation per remove/add cycle. This is only visible when the backing MTD device can disappear and be registered again while mtdoops remains loaded, so the usual static MTD case does not expose it. Free the bitmap after unregistering the dumper and flushing the pending workers, then clear the pointer and page count before a later attach can allocate fresh state. Clearing the pointer also keeps the module exit path from freeing the same bitmap a second time after a remove event.",
    "evidence": "osv:CVE-2026-89953",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.270",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.221",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.188",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.157",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.110",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.51",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.5",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-89953",
      "aliases": [
        "CVE-2026-89953"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "be95745f01677245a061a8f51473ef5ec8ad008e"
                },
                {
                  "fixed": "477d61d54e097e90f748aa18d013805abd56bcbd"
                },
                {
                  "fixed": "a91ac71e67c3e01ed9afd9841435bebb930293f8"
                },
                {
                  "fixed": "698944132083d143ef965c0090ee14ba1d9e1a5f"
                },
                {
                  "fixed": "f25c804947e0a28c15e73da8e2e0db959cbed716"
                },
                {
                  "fixed": "8414f0e9f707226de20b48c7048179fd86d352fc"
                },
                {
                  "fixed": "d06f91a52af11630c9f7e487f6daf242ac310cb8"
                },
                {
                  "fixed": "1e5cd8bc902331ff801df88cbb299029ae062753"
                },
                {
                  "fixed": "956e7da12c114f13c63d126ab1d79c3b6a819060"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89953.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "2.6.33"
                },
                {
                  "fixed": "5.10.270"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.221"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.188"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.157"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.110"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.51"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.5"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89953.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:22.889764869Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/1e5cd8bc902331ff801df88cbb299029ae062753",
        "https://git.kernel.org/stable/c/477d61d54e097e90f748aa18d013805abd56bcbd",
        "https://git.kernel.org/stable/c/698944132083d143ef965c0090ee14ba1d9e1a5f",
        "https://git.kernel.org/stable/c/8414f0e9f707226de20b48c7048179fd86d352fc",
        "https://git.kernel.org/stable/c/956e7da12c114f13c63d126ab1d79c3b6a819060",
        "https://git.kernel.org/stable/c/a91ac71e67c3e01ed9afd9841435bebb930293f8",
        "https://git.kernel.org/stable/c/d06f91a52af11630c9f7e487f6daf242ac310cb8",
        "https://git.kernel.org/stable/c/f25c804947e0a28c15e73da8e2e0db959cbed716",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89953.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-89953",
        "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/89xxx/CVE-2026-89953.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-89953",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 489303,
  "published_at": "2026-09-16T10:32:37.676+00:00"
}