{"id":"CVE-2026-89967","summary":"mm/migrate_device: avoid out-of-bounds writes for compound folios","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nmm/migrate_device: avoid out-of-bounds writes for compound folios\n\nmigrate_device_range() and migrate_device_pfns() clear the entries\nfollowing a compound folio so that the PFN arrays retain their\npage-granular representation.\n\nIf a compound folio extends beyond the end of the caller-provided range,\nthe loops clear all following folio entries without limiting them to the\nnumber of slots remaining in the npages-sized array, causing an\nout-of-bounds write.\n\nDo not proceed with a compound folio if its page-granular representation\ndoes not fit entirely in the remaining PFN array.  If this happens, drop\nany reference and lock acquired for the folio, clear the remaining\nentries, and stop collecting.\n\nObserved with a KASAN x86 QEMU kernel using the HMM migrate_anon_huge_zero\nselftest.  Closing /dev/hmm_dmirror0 after migrating an anonymous huge\npage to device memory exercises:\n\n  dmirror_fops_release()\n    -\u003e dmirror_device_evict_chunk()\n      -\u003e migrate_device_range()","modified":"2026-09-17T03:47:28.538839678Z","published":"2026-09-16T10:32:48.164Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89967.json"},"references":[{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"},{"type":"WEB","url":"https://git.kernel.org/stable/c/99186b185c245f5987d7f8715d5504c8d8cc04a0"},{"type":"WEB","url":"https://git.kernel.org/stable/c/dc41e961a269f2ca4196e669d6d8e05480899cd4"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89967.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89967"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"a30b48bf1b244f11bf9b6d20cdccfe0c2264130c"},{"fixed":"99186b185c245f5987d7f8715d5504c8d8cc04a0"},{"fixed":"dc41e961a269f2ca4196e669d6d8e05480899cd4"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89967.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.2.5"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89967.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}