{"id":"CVE-2026-64229","summary":"x86/mm: Disable broadcast TLB flush when PCID is disabled","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nx86/mm: Disable broadcast TLB flush when PCID is disabled\n\nBooting with \"nopcid\" clears X86_FEATURE_PCID and keeps CR4.PCIDE from being\nset to one. On AMD CPUs that support INVLPGB, broadcast TLB flushing remains\nenabled.\n\nThere are two checks that decide whether the global ASID code runs,\nmm_global_asid() and consider_global_asid(), that key off of the\nX86_FEATURE_INVLPGB feature. Once an mm becomes active on more than three\nCPUs, consider_global_asid() assigns it a global ASID, after which\nflush_tlb_mm_range() takes the broadcast_tlb_flush() path using a non-zero\nPCID. Issuing an INVLPGB with a non-zero PCID while CR4.PCIDE is not set\nresults in a #GP:\n\n  Oops: general protection fault, kernel NULL pointer dereference 0x1: 0000 [#1] SMP NOPTI\n  CPU: 158 UID: 0 PID: 3119 Comm: snap Not tainted 7.1.0-rc3 #1 PREEMPT(full)\n  Hardware name: ...\n  RIP: 0010:broadcast_tlb_flush\n  Code: ... 89 da 48 83 c8 07 \u003c0f\u003e 01 fe eb 08 cc cc cc ...\n  Call Trace:\n   \u003cTASK\u003e\n   flush_tlb_mm_range\n   ptep_clear_flush\n   wp_page_copy\n   ? _raw_spin_unlock\n   __handle_mm_fault\n   handle_mm_fault\n   do_user_addr_fault\n   exc_page_fault\n   asm_exc_page_fault\n\nAll processors that support broadcast TLB invalidation also have PCID support,\nso it is only the \"nopcid\" scenario that is of concern. In this situation just\ndisable the broadcast TLB support using the CPUID dependency support by making\nX86_FEATURE_INVLPGB dependent on X86_FEATURE_PCID.\n\n  [ bp: Massage commit message. ]","modified":"2026-07-27T04:03:20.507340492Z","published":"2026-07-24T15:23:12.069Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64229.json"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/44126343d58c68adaa8343fbf1c07dd20078c35e"},{"type":"WEB","url":"https://git.kernel.org/stable/c/d2d6d21286719b454d5d87a8758c23d2377d88a2"},{"type":"WEB","url":"https://git.kernel.org/stable/c/fed725cace3ab1c4f7f8182e35029a603d953187"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64229.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64229"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"4afeb0ed1753ebcad93ee3b45427ce85e9c8ec40"},{"fixed":"fed725cace3ab1c4f7f8182e35029a603d953187"},{"fixed":"d2d6d21286719b454d5d87a8758c23d2377d88a2"},{"fixed":"44126343d58c68adaa8343fbf1c07dd20078c35e"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64229.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.15.0"},{"fixed":"6.18.35"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.0.11"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64229.json"}}],"schema_version":"1.7.5"}