{
  "schemaVersion": 1,
  "attribution": [
    {
      "source": "CISA Known Exploited Vulnerabilities",
      "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
      "licence": "US government work"
    },
    {
      "source": "GitHub Advisory Database",
      "url": "https://github.com/advisories",
      "licence": "CC BY 4.0"
    },
    {
      "source": "Have I Been Pwned",
      "url": "https://haveibeenpwned.com/",
      "licence": "CC BY 4.0"
    },
    {
      "source": "CVE Program (CVE records)",
      "url": "https://www.cve.org/Legal/TermsOfUse",
      "licence": "CVE Terms of Use",
      "notice": "Copyright © 1999-2026, The MITRE Corporation. CVE is a trademark and the CVE logo is a registered trademark of The MITRE Corporation.",
      "terms": "CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE™). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy."
    },
    {
      "source": "FIRST EPSS",
      "url": "https://www.first.org/epss/",
      "licence": "free to use; FIRST requests attribution"
    }
  ],
  "record": {
    "id": "CVE-2025-40006",
    "sourceURL": "https://www.cve.org/CVERecord?id=CVE-2025-40006",
    "idYear": 2025,
    "status": "PUBLISHED",
    "publishedAt": "2025-10-20T15:26:53.097Z",
    "updatedAt": "2026-08-05T12:07:03.344Z",
    "importedAt": "2026-10-24T01:57:34.152Z",
    "snapshot": {
      "id": "cve_2026-10-24_midnight_baseline",
      "at": "2026-10-24T00:00:00.000Z",
      "source": "https://github.com/CVEProject/cvelistV5/releases/tag/cve_2026-10-24_0100Z"
    },
    "facts": {
      "title": "mm/hugetlb: fix folio is still mapped when deleted",
      "summary": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/hugetlb: fix folio is still mapped when deleted\n\nMigration may be raced with fallocating hole.  remove_inode_single_folio\nwill unmap the folio if the folio is still mapped.  However, it's called\nwithout folio lock.  If the folio is migrated and the mapped pte has been\nconverted to migration entry, folio_mapped() returns false, and won't\nunmap it.  Due to extra refcount held by remove_inode_single_folio,\nmigration fails, restores migration entry to normal pte, and the folio is\nmapped again.  As a result, we triggered BUG in filemap_unaccount_folio.\n\nThe log is as follows:\n BUG: Bad page cache in process hugetlb  pfn:156c00\n page: refcount:515 mapcount:0 mapping:0000000099fef6e1 index:0x0 pfn:0x156c00\n head: order:9 mapcount:1 entire_mapcount:1 nr_pages_mapped:0 pincount:0\n aops:hugetlbfs_aops ino:dcc dentry name(?):\"my_hugepage_file\"\n flags: 0x17ffffc00000c1(locked|waiters|head|node=0|zone=2|lastcpupid=0x1fffff)\n page_type: f4(hugetlb)\n page dumped because: still mapped when deleted\n CPU: 1 UID: 0 PID: 395 Comm: hugetlb Not tainted 6.17.0-rc5-00044-g7aac71907bde-dirty #484 NONE\n Hardware name: QEMU Ubuntu 24.04 PC (i440FX + PIIX, 1996), BIOS 0.0.0 02/06/2015\n Call Trace:\n  <TASK>\n  dump_stack_lvl+0x4f/0x70\n  filemap_unaccount_folio+0xc4/0x1c0\n  __filemap_remove_folio+0x38/0x1c0\n  filemap_remove_folio+0x41/0xd0\n  remove_inode_hugepages+0x142/0x250\n  hugetlbfs_fallocate+0x471/0x5a0\n  vfs_fallocate+0x149/0x380\n\nHold folio lock before checking if the folio is mapped to avold race with\nmigration.",
      "affected": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "4aae8d1c051ea00b456da6811bc36d1f69de5445",
              "status": "affected",
              "versionType": "git",
              "lessThan": "bc1c9ce8aeff45318332035dbef9713fb9e982d7"
            },
            {
              "version": "4aae8d1c051ea00b456da6811bc36d1f69de5445",
              "status": "affected",
              "versionType": "git",
              "lessThan": "91f548e920fbf8be3f285bfa3fa045ae017e836d"
            },
            {
              "version": "4aae8d1c051ea00b456da6811bc36d1f69de5445",
              "status": "affected",
              "versionType": "git",
              "lessThan": "3e851448078f5b01f6264915df3cfef75e323a12"
            },
            {
              "version": "4aae8d1c051ea00b456da6811bc36d1f69de5445",
              "status": "affected",
              "versionType": "git",
              "lessThan": "c1dc0524ab2cc3982d4e0d2bfac71a0cd4d65c39"
            },
            {
              "version": "4aae8d1c051ea00b456da6811bc36d1f69de5445",
              "status": "affected",
              "versionType": "git",
              "lessThan": "c9c2a51f91aea70e89b496cac360cd795a2b3c26"
            },
            {
              "version": "4aae8d1c051ea00b456da6811bc36d1f69de5445",
              "status": "affected",
              "versionType": "git",
              "lessThan": "910d7749346c4b0acdc6e4adfdc4a9984281a206"
            },
            {
              "version": "4aae8d1c051ea00b456da6811bc36d1f69de5445",
              "status": "affected",
              "versionType": "git",
              "lessThan": "21ee79ce938127f88fe07e409c1817f477dbe7ea"
            },
            {
              "version": "4aae8d1c051ea00b456da6811bc36d1f69de5445",
              "status": "affected",
              "versionType": "git",
              "lessThan": "7b7387650dcf2881fd8bb55bcf3c8bd6c9542dd7"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "versions": [
            {
              "version": "4.5",
              "status": "affected"
            },
            {
              "version": "0",
              "status": "unaffected",
              "versionType": "semver",
              "lessThan": "4.5"
            },
            {
              "version": "5.4.300",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "5.4.*"
            },
            {
              "version": "5.10.245",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "5.10.*"
            },
            {
              "version": "5.15.194",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "5.15.*"
            },
            {
              "version": "6.1.155",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "6.1.*"
            },
            {
              "version": "6.6.109",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "6.6.*"
            },
            {
              "version": "6.12.50",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "version": "6.16.10",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "6.16.*"
            },
            {
              "version": "6.17",
              "status": "unaffected",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ]
        }
      ]
    }
  }
}