{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-72279",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2026-08-09T03:40:39.916Z",
        "datePublished": "2026-08-15T05:55:04.313Z",
        "dateUpdated": "2026-08-17T05:42:14.902Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-17T05:42:14.902Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: arm64: nv: Respect read-only PFN when mapping L1 VNCR\n\nKVM currently maps the L1 VNCR into the host stage-1 by relying entirely\non the permissions of the guest stage-1. At the same time, it is\nentirely possible that the backing PFN is read-only (e.g. RO memslot),\nmeaning that the L1 VNCR should use at most a read-only mapping.\n\nCache the writability of the PFN in the VNCR TLB and use it to constrain\nthe resulting fixmap permissions. Promote VNCR permission faults to an\nSEA in the case where the guest attempts to write to a read-only\nendpoint. Conveniently, this also plugs a page leak found by Sashiko [*]\nresulting from the early return for a read-only PFN."
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:H",
                        "baseScore": 9,
                        "baseSeverity": "CRITICAL"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:L - The flaw is reached only when a nested arm64 KVM guest hypervisor triggers VNCR_EL2 data aborts handled via KVM_RUN through kvm_handle_vncr_abort() and kvm_translate_vncr(); no network, adjacent-radio, or physical-device path reaches this code.\nAC:L - An attacker controlling an L1 nested-hypervisor VM can reliably configure VNCR_EL2, guest stage-1 page tables, and KVM_MEM_READONLY memslots, then trigger translation faults and writes; nested virt on arm64 cloud hosts is an attacker-selectable deployment, not an uncontrollable condition.\nPR:N - Exploitation requires no host root or init-namespace capabilities beyond running code in a tenant KVM guest on an arm64 host with nested virtualization enabled; the attacker operates entirely from within their assigned VM, consistent with other arm64 KVM guest CVE scoring.\nUI:N - No victim user or administrator action is required beyond the attacker operating their own nested-virtualization workload; VNCR faults, fixmap remapping, and repeated write triggers are fully attacker-driven from within the guest.\nS:C - The bug defeats host KVM enforcement of read-only memslots via host fixmap mappings and leaks host kernel page references on the error path, crossing the guest-to-hypervisor security boundary by affecting host memory accounting and VMM-imposed memory protections beyond the guest authority.\nC:N - The vulnerability provides a write and page-reference leak primitive, not an out-of-bounds read, use-after-free, or other information-disclosure path; corrupted RO guest pages are attacker-influenced backing store, not arbitrary host kernel memory reads.\nI:H - Mapping an RO-backed PFN into the host fixmap with PAGE_KERNEL lets a guest hypervisor write to memory the VMM marked KVM_MEM_READONLY, bypassing a host-enforced integrity control and enabling modification of protected guest or hypervisor pages such as firmware, virtio metadata, or EL2 state.\nA:H - Repeated write faults to read-only VNCR endpoints leak a faulted-in page reference on each early -EFAULT return without kvm_release_faultin_page(), enabling sustained host kernel memory exhaustion and denial of service to co-resident workloads on the hypervisor."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "arch/arm64/kvm/nested.c"
                    ],
                    "versions": [
                        {
                            "version": "2a359e072596fcb2e9e85017a865e3618a2fe5b5",
                            "lessThan": "5c50db5bcbb9073cb2fd97be51b962de92f429e9",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "2a359e072596fcb2e9e85017a865e3618a2fe5b5",
                            "lessThan": "d35defbdfcb15296ebe28968ad7452c1a8c11cea",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "2a359e072596fcb2e9e85017a865e3618a2fe5b5",
                            "lessThan": "2684e02bac41c5220f6c1ab2bdcc957b71812977",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "arch/arm64/kvm/nested.c"
                    ],
                    "versions": [
                        {
                            "version": "6.16",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "6.16",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.18.40",
                            "lessThanOrEqual": "6.18.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.1.5",
                            "lessThanOrEqual": "7.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.2",
                            "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.16",
                                    "versionEndExcluding": "6.18.40"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.16",
                                    "versionEndExcluding": "7.1.5"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.16",
                                    "versionEndExcluding": "7.2"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/5c50db5bcbb9073cb2fd97be51b962de92f429e9"
                },
                {
                    "url": "https://git.kernel.org/stable/c/d35defbdfcb15296ebe28968ad7452c1a8c11cea"
                },
                {
                    "url": "https://git.kernel.org/stable/c/2684e02bac41c5220f6c1ab2bdcc957b71812977"
                }
            ],
            "title": "KVM: arm64: nv: Respect read-only PFN when mapping L1 VNCR",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        }
    }
}