{"id":"CVE-2026-89568","revision":"9d0115ff9e9f48eba9c135749f009cdb","records":[{"revision":"9d0115ff9e9f48eba9c135749f009cdb","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-89568","aliases":[],"title":"kho: fix size calculation in kho_preserved_memory_reserve()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nkho: fix size calculation in kho_preserved_memory_reserve()\n\nkho_preserved_memory_reserve() calculates the size of a preservation by\ndoing 1 << (order + PAGE_SHIFT). Since the '1' is a 32-bit integer, it\ncan only be shifted by 31. That is, it will only work for preservations\nup to 2 GiB. Larger preservations will trigger undefined behaviour.\n\nWhile preservations larger than 2 GiB can't be obtained via folios\ncurrently, they can be obtained via kho_preserve_pages().\n\nFor example, memblock reserve_mem uses kho_preserve_pages().\nReservations larger than 2 GiB are valid and will trigger this bug if\nproperly aligned.\n\nFix it by using 1UL for shifting.","state":0,"publishedAt":"2026-09-11T19:44:38.078+00:00","modifiedAt":"2026-10-19T08:49:01.653+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                        \"kernel/liveupdate/kexec_handover.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"fc33e4b44b2717feba2f6f07ce7943a96499c9ec\",\n                            \"lessThan\": \"0692a8fdf0222af130c8ea97426f1c3bf3814905\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"fc33e4b44b2717feba2f6f07ce7943a96499c9ec\",\n                            \"lessThan\": \"42a6f03cf352eb6e6dbeef95e75e686f4cdb9bd1\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"fc33e4b44b2717feba2f6f07ce7943a96499c9ec\",\n                            \"lessThan\": \"3a0b8fa2eb36afc88b62a95f33f0c77c71fa5ded\",\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                        \"kernel/liveupdate/kexec_handover.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.57\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.4\",\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":[],"references":["https://git.kernel.org/stable/c/0692a8fdf0222af130c8ea97426f1c3bf3814905","https://git.kernel.org/stable/c/42a6f03cf352eb6e6dbeef95e75e686f4cdb9bd1","https://git.kernel.org/stable/c/3a0b8fa2eb36afc88b62a95f33f0c77c71fa5ded"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-89568","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-89568","identifiers":["CVE-2026-89568"]},"retained":false,"historicalAffected":[]}],"coverage":[]}