{"id":"CVE-2026-98440","kind":"vulnerability","aliases":["CVE-2026-98440"],"related":[],"title":"Linux KVM arm64: shadow stage-2 structures freed too early, leaving stale references","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: arm64: nv: Delay freeing of shadow S2 structures until VM destruction\n\nWe free the shadow S2 structures from kvm_arch_flush_shadow_all(), which\nis a Bad Idea(tm). Freeing the page tables is fair game (this is what\nthis callback is for), but freeing the container that could still be\nreferenced by another part of the system is not great.\n\nInstead, grow separate destructors that gets called when we tear the VM\ndown for good. From there, we can nuke both the individual MMUs as well\nas the global array that points to them, safe in the knowledge that the\nvcpus themselves have been destroyed already.","summary":"In the Linux kernel's arm64 KVM nested-virtualization code, shadow stage-2 structures were freed during a flush callback while other parts of the system could still reference them. The fix delays freeing them until the VM is destroyed, and the description does not state a confirmed attacker outcome.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["arm64","kvm","linux","nested-virtualization","runtime"],"not_affected_if":["default-config"],"how_to_check":"- unknown","fix":"- unknown","status":"open","published_at":"2026-10-18T16:16:54+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","triaged_at":"2026-10-25T05:27:32+00:00","updated_at":"2026-10-25T05:27:32+00:00","category":"runtime","confidence":0.4,"triage":{"at":"2026-10-25T05:27:32Z","model":"claude-haiku-5-5","output":{"fix":"- unknown","reach":"local","title":"Linux KVM arm64: shadow stage-2 structures freed too early, leaving stale references","impact":"medium","summary":"In the Linux kernel's arm64 KVM nested-virtualization code, shadow stage-2 structures were freed during a flush callback while other parts of the system could still reference them. The fix delays freeing them until the VM is destroyed, and the description does not state a confirmed attacker outcome.","category":"runtime","nicknames":[],"who_cares":["linux","kvm","arm64","nested-virtualization"],"confidence":0.4,"needs_auth":"unknown","worst_case":"unknown; the description does not state an attacker outcome","analyst_note":"Check the NVD entry and the upstream kernel commit for the affected kernel version ranges, the exploit impact, and whether it is reachable from a guest VM.","how_to_check":"- unknown","needs_analyst":true,"not_affected_if":["default-config"],"who_is_affected":"unknown","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.00054,"input_tokens":3446,"output_tokens":391,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2':6A,40B '-2026':15A,18A '-98440':16A,19A 'alreadi':195C 'anoth':142C 'arch':108C 'arm64':3A,20B,32B,89C 'array':179C 'attack':76B 'bad':115C 'call':156C 'callback':47B,129C 'code':37B 'confirm':75B 'contain':135C 'could':54B,137C 'cve':14A,17A 'delay':60B,91C 'descript':70B 'destroy':67B,194C 'destruct':99C 'destructor':153C 'earli':10A 'fair':123C 'fix':59B 'flush':46B,109C 'follow':83C 'free':61B,92C,101C,118C,133C 'freed':8A,43B 'game':124C 'get':155C 'global':178C 'good':164C 'great':149C 'grow':151C 'idea':116C 'individu':172C 'instead':150C 'kernel':30B,81C 'knowledg':187C 'kvm':2A,21B,33B,88C,107C 'leav':11A 'linux':1A,22B,29B,80C 'mmus':173C 'nest':24B,35B 'nested-virtu':23B,34B 'nuke':169C 'nv':90C 'outcom':77B 'page':120C 'part':50B,143C 'point':181C 'refer':13A,56B 'referenc':140C 'resolv':87C 'runtim':26B 's2':95C,104C 'safe':184C 'separ':152C 'shadow':4A,38B,94C,103C,110C 'stage':5A,39B 'stale':12A 'state':73B 'still':55B,138C 'structur':7A,41B,96C,105C 'system':53B,146C 'tabl':121C 'tear':159C 'tm':117C 'vcpus':190C 'virtual':25B,36B 'vm':65B,98C,161C 'vulner':84C 'well':175C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:16:54+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98440","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98440","severity":null,"published_at":"2026-10-18T16:16:54+00:00","modified_at":"2026-10-19T10:18:52+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","fetched_at":"2026-10-23T22:28:56+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}