{"id":"CVE-2026-89775","revision":null,"records":[{"revision":"d252983fab1c4d8b8984c2050f84fae0","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-89775","aliases":[],"title":"KVM: arm64: Handle negative S1 walk levels in VNCR TLB size evaluation","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: arm64: Handle negative S1 walk levels in VNCR TLB size evaluation\n\nComputing the effects of a TLB invalidation involves looking at\nthe size of the mapping cached by the TLB. For S1 mappings such as\nVNCR, this is deducted from the combination of the base granule size\nand the mapping level.\n\nHowever, this implies that the S1 MMU is *on*. When the MMU is off,\nwe indicate this with the level being set to a \"creative\" value of\n-127 (S1_MMU_DISABLED).\n\nThis ends-up being misinterpreted by pgshift_level_to_ttl() as it\ndoesn't handle negative levels at all (the level is immediately cast\nto a u8 and only the bottom two bits considered), leading to an\ninvalidation size of 0. Not helpful.\n\nTidy-up pgshift_level_to_ttl() to handle these negative levels, and\nttl_to_size() to always return SZ_1G when no valid TTL is present.\nThis allows the removal of open-coded checks for similar situations.\n\nNote that the check for a negative value not explicitely checking for\nS1_MMU_DISABLED is deliberate, so that actual negative levels introduced\nwith LVA2 and D128 can take the same path if we ever support them.","state":0,"publishedAt":"2026-09-16T08:39:16.109+00:00","modifiedAt":"2026-10-19T08:52:27.588+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"arch/arm64/kvm/nested.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"7270cc9157f474dfc46750a34c9d7defc686b2eb\",\n                            \"lessThan\": \"be54a70067c7dbe1381157e8a238fa4b16ea9c05\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"7270cc9157f474dfc46750a34c9d7defc686b2eb\",\n                            \"lessThan\": \"1c9fca34b9625a67a7f1a03c8604f3df760c6c49\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"7270cc9157f474dfc46750a34c9d7defc686b2eb\",\n                            \"lessThan\": \"8053393680d4fa3eb962667d2be95dd39f0940e5\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"arch/arm64/kvm/nested.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"6.16\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"6.16\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.51\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.5\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","score":9.3,"severity":"CRITICAL"}],"references":["https://git.kernel.org/stable/c/be54a70067c7dbe1381157e8a238fa4b16ea9c05","https://git.kernel.org/stable/c/1c9fca34b9625a67a7f1a03c8604f3df760c6c49","https://git.kernel.org/stable/c/8053393680d4fa3eb962667d2be95dd39f0940e5"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-89775","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-89775","identifiers":["CVE-2026-89775"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-11-09T04:03:51.7811525+00:00","complete":true,"records":1769,"lastAttemptAt":"2026-11-09T04:03:51.7811525+00:00","lastSuccessAt":"2026-11-09T04:03:51.9477173+00:00","error":null,"lastVerifiedAt":"2026-11-09T04:03:51.9477231+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-24e6fde7b744113daefb8f6135035fb8a5c69c9617c9c0d40574a0376532ffd3-246bcd291098e4bae24ec491a133b97526d1f4514f8eb34817e1ec280d43b276","complete":true,"records":421286,"lastAttemptAt":"2026-11-09T04:02:14.2951792+00:00","lastSuccessAt":"2026-11-09T04:02:14.2751612+00:00","error":null,"lastVerifiedAt":"2026-11-09T04:02:14.2951792+00:00","snapshotPublishedAt":"2026-11-09T03:29:47+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-0e1130a95bab4b43bc10624fd5ee853a","complete":false,"records":13654,"lastAttemptAt":"2026-11-09T04:16:03.8367163+00:00","lastSuccessAt":"2026-11-09T04:16:03.832+00:00","error":"8 identifier lookups failed; latest failures include HTTP 403. Other identifiers were checked independently.","lastVerifiedAt":"2026-11-09T04:16:03.832+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13653,"expectedIdentifiers":13706,"failedIdentifiers":8},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-11-09T04:03:51.7811525+00:00","complete":true,"records":1096,"lastAttemptAt":"2026-11-09T04:03:51.7811525+00:00","lastSuccessAt":"2026-11-09T04:03:51.948408+00:00","error":null,"lastVerifiedAt":"2026-11-09T04:03:51.9484081+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-5a44a451442747cb81d83104fe1e7771","complete":true,"records":13666,"lastAttemptAt":"2026-11-09T04:03:52.3882913+00:00","lastSuccessAt":"2026-11-09T02:08:52.274+00:00","error":null,"lastVerifiedAt":"2026-11-09T02:08:52.274+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13706,"expectedIdentifiers":13706,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-980593e6977a6d1b4fb1eed5a1ffe88a468736f89f0a06f710924ad59132c023","complete":true,"records":9914,"lastAttemptAt":"2026-11-09T04:03:51.3592849+00:00","lastSuccessAt":"2026-11-08T11:07:07.068788+00:00","error":null,"lastVerifiedAt":"2026-11-09T04:03:51.3592849+00:00","snapshotPublishedAt":"2026-11-08T11:02:46+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-fde804134ecdda0ddd5ff5c26ee1fff5a6fa659311f7ef2e51c6ad54964db0e2","complete":true,"records":1971,"lastAttemptAt":"2026-11-09T04:02:14.6671491+00:00","lastSuccessAt":"2026-11-06T19:03:17.0399903+00:00","error":null,"lastVerifiedAt":"2026-11-09T04:02:14.6671491+00:00","snapshotPublishedAt":"2026-11-06T18:17:57+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-3b1150af6d7ada2c07356cbab4ead5224c1485027890f71c71d0742cddf0b9e8","complete":true,"records":3055,"lastAttemptAt":"2026-11-09T04:03:51.7519249+00:00","lastSuccessAt":"2026-11-09T00:02:23.4330288+00:00","error":null,"lastVerifiedAt":"2026-11-09T04:03:51.7519249+00:00","snapshotPublishedAt":"2026-11-08T23:17:54+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-6a1c845b1938b1aa788f0e95c9ac8a8d5a1f07caed5d155840b0616b548c1455","complete":true,"records":231296,"lastAttemptAt":"2026-11-09T04:03:51.2380069+00:00","lastSuccessAt":"2026-11-09T04:03:49.859595+00:00","error":null,"lastVerifiedAt":"2026-11-09T04:03:51.2380069+00:00","snapshotPublishedAt":"2026-11-09T03:33:06+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}