{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2024-26617",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2024-02-19T14:20:24.131Z",
        "datePublished": "2024-02-29T15:52:20.028Z",
        "dateUpdated": "2026-08-05T11:26:17.229Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T11:26:17.229Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfs/proc/task_mmu: move mmu notification mechanism inside mm lock\n\nMove mmu notification mechanism inside mm lock to prevent race condition\nin other components which depend on it.  The notifier will invalidate\nmemory range.  Depending upon the number of iterations, different memory\nranges would be invalidated.\n\nThe following warning would be removed by this patch:\nWARNING: CPU: 0 PID: 5067 at arch/x86/kvm/../../../virt/kvm/kvm_main.c:734 kvm_mmu_notifier_change_pte+0x860/0x960 arch/x86/kvm/../../../virt/kvm/kvm_main.c:734\n\nThere is no behavioural and performance change with this patch when\nthere is no component registered with the mmu notifier.\n\n[akpm@linux-foundation.org: narrow the scope of `range', per Sean]"
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                        "baseScore": 7.8,
                        "baseSeverity": "HIGH"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:L - The vulnerability is reached through the `PAGEMAP_SCAN` ioctl on `/proc/<pid>/pagemap`, which requires local access to issue syscalls on the target machine. There is no network-facing path to `do_pagemap_scan()`.\nAC:L - The attacker controls both sides of the race: the invalidation window is opened purely by setting `PM_SCAN_WP_MATCHING` and can be held open arbitrarily long by pointing the output `vec` buffer at a userfaultfd-backed page so `pagemap_scan_flush_buffer()`'s `copy_to_user()` blocks, while a sibling thread performs the racing `mmu_notifier_register()` (e.g. `KVM_CREATE_VM`). syzbot reproduced it, confirming reliable triggerability.\nPR:L - Any unprivileged user can open `/proc/self/pagemap` (`proc_mem_open` with `PTRACE_MODE_READ` on one's own task always succeeds) and there is no capability check in `do_pagemap_cmd()`, `do_pagemap_scan()`, or `pagemap_scan_get_args()`. No user namespace or CAP_SYS_ADMIN is needed.\nUI:N - The attacker performs the entire sequence — ioctl plus concurrent notifier registration — from its own threads. No victim action is involved.\nS:U - The vulnerable code and the corrupted state (kernel mm/KVM MMU-notifier bookkeeping) are both in the host kernel, the same security authority as the attacking local process. Standard kernel privilege/DoS boundary.\nC:H - Breaking the start/end pairing leaves secondary MMUs holding stale references to old PFNs — KVM's own comment in `kvm_change_spte_gfn()` states the shortcut is only safe because the invariant holds, otherwise \"KVM ... hold[s] references to the old PFN.\" Guests and DMA-capable devices (ODP/SVA/HMM) retain mappings to host pages already released and reallocated, enabling disclosure of arbitrary kernel/other-tenant memory.\nI:H - The same stale writable secondary-MMU/DMA mappings permit writes into freed and reused host pages, and the bug directly corrupts KVM's `mmu_invalidate_in_progress`/`mn_active_invalidate_count` into states the code asserts are impossible. That combination is exploitable memory corruption, not just a bookkeeping glitch.\nA:H - Reachable outcomes include a kernel `BUG_ON(kvm->mmu_invalidate_in_progress < 0)` oops, the `WARN_ON_ONCE` at `kvm_main.c:732` (panic under `panic_on_warn`), an unkillable `TASK_UNINTERRUPTIBLE` hang in `kvm_swap_active_memslots()` holding `slots_lock`, and permanent guest fault livelock via `mmu_invalidate_retry()`."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "fs/proc/task_mmu.c"
                    ],
                    "versions": [
                        {
                            "version": "52526ca7fdb905a768a93f8faa418e9b988fc34b",
                            "lessThan": "05509adf297924f51e1493aa86f9fcde1433ed80",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "52526ca7fdb905a768a93f8faa418e9b988fc34b",
                            "lessThan": "4cccb6221cae6d020270606b9e52b1678fc8b71a",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "fs/proc/task_mmu.c"
                    ],
                    "versions": [
                        {
                            "version": "6.7",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "6.7",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.7.3",
                            "lessThanOrEqual": "6.7.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.8",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.7",
                                    "versionEndExcluding": "6.7.3"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.7",
                                    "versionEndExcluding": "6.8"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/05509adf297924f51e1493aa86f9fcde1433ed80"
                },
                {
                    "url": "https://git.kernel.org/stable/c/4cccb6221cae6d020270606b9e52b1678fc8b71a"
                }
            ],
            "title": "fs/proc/task_mmu: move mmu notification mechanism inside mm lock",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        },
        "adp": [
            {
                "metrics": [
                    {
                        "other": {
                            "type": "ssvc",
                            "content": {
                                "id": "CVE-2024-26617",
                                "role": "CISA Coordinator",
                                "options": [
                                    {
                                        "Exploitation": "none"
                                    },
                                    {
                                        "Automatable": "no"
                                    },
                                    {
                                        "Technical Impact": "partial"
                                    }
                                ],
                                "version": "2.0.3",
                                "timestamp": "2024-03-11T19:04:06.799235Z"
                            }
                        }
                    }
                ],
                "title": "CISA ADP Vulnrichment",
                "providerMetadata": {
                    "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
                    "shortName": "CISA-ADP",
                    "dateUpdated": "2024-07-05T17:22:14.114Z"
                }
            },
            {
                "providerMetadata": {
                    "orgId": "af854a3a-2127-422b-91ae-364da2661108",
                    "shortName": "CVE",
                    "dateUpdated": "2024-08-02T00:07:19.748Z"
                },
                "title": "CVE Program Container",
                "references": [
                    {
                        "url": "https://git.kernel.org/stable/c/05509adf297924f51e1493aa86f9fcde1433ed80",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/4cccb6221cae6d020270606b9e52b1678fc8b71a",
                        "tags": [
                            "x_transferred"
                        ]
                    }
                ]
            }
        ]
    }
}