{"id":"CVE-2026-43129","state":"PUBLISHED","title":"ima: verify the previous kernel's IMA buffer lies in addressable RAM","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nima: verify the previous kernel's IMA buffer lies in addressable RAM\n\nPatch series \"Address page fault in ima_restore_measurement_list()\", v3.\n\nWhen the second-stage kernel is booted via kexec with a limiting command\nline such as \"mem=<size>\" we observe a pafe fault that happens.\n\n    BUG: unable to handle page fault for address: ffff97793ff47000\n    RIP: ima_restore_measurement_list+0xdc/0x45a\n    #PF: error_code(0x0000)  not-present page\n\nThis happens on x86_64 only, as this is already fixed in aarch64 in\ncommit: cbf9c4b9617b (\"of: check previous kernel's ima-kexec-buffer\nagainst memory bounds\")\n\n\nThis patch (of 3):\n\nWhen the second-stage kernel is booted with a limiting command line (e.g. \n\"mem=<size>\"), the IMA measurement buffer handed over from the previous\nkernel may fall outside the addressable RAM of the new kernel.  Accessing\nsuch a buffer can fault during early restore.\n\nIntroduce a small generic helper, ima_validate_range(), which verifies\nthat a physical [start, end] range for the previous-kernel IMA buffer lies\nwithin addressable memory:\n\t- On x86, use pfn_range_is_mapped().\n\t- On OF based architectures, use page_is_ram().","publishedAt":"2026-05-06T11:27:18.180Z","updatedAt":"2026-10-30T12:25:03.802Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"5bfa1941ec40d5bed68f3e3f22ea13aff9c6d67a","versionType":"git"},{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"43308106a1762b72f3b20a44b75b2df5cb25b77b","versionType":"git"},{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"f11d7d088f5ed54b31c6735854c12845eb60eb4a","versionType":"git"},{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"9e1f51c1ad57cc76a0e8b5eb27038f8973fff4fa","versionType":"git"},{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"5366ec7d2f793ce703c403d7fd4c25a3db365b9d","versionType":"git"},{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"10d1c75ed4382a8e79874379caa2ead8952734f9","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/linux/ima.h","security/integrity/ima/ima_kexec.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.0","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.77","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.16","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.6","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/linux/ima.h","security/integrity/ima/ima_kexec.c"]}],"references":["https://git.kernel.org/stable/c/5bfa1941ec40d5bed68f3e3f22ea13aff9c6d67a","https://git.kernel.org/stable/c/43308106a1762b72f3b20a44b75b2df5cb25b77b","https://git.kernel.org/stable/c/f11d7d088f5ed54b31c6735854c12845eb60eb4a","https://git.kernel.org/stable/c/9e1f51c1ad57cc76a0e8b5eb27038f8973fff4fa","https://git.kernel.org/stable/c/5366ec7d2f793ce703c403d7fd4c25a3db365b9d","https://git.kernel.org/stable/c/10d1c75ed4382a8e79874379caa2ead8952734f9"],"weaknesses":[],"ingestedAt":"2026-10-30T12:42:04.495Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/43xxx/CVE-2026-43129.json","commit":"db8103c5921aac81d5d90efcf3745980dafabf49","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-43129","state":"PUBLISHED","datePublished":"2026-05-06T11:27:18.180Z","dateUpdated":"2026-10-30T12:25:03.802Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-05-01T14:12:55.988Z"},"containers":{"cna":{"title":"ima: verify the previous kernel's IMA buffer lies in addressable RAM","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nima: verify the previous kernel's IMA buffer lies in addressable RAM\n\nPatch series \"Address page fault in ima_restore_measurement_list()\", v3.\n\nWhen the second-stage kernel is booted via kexec with a limiting command\nline such as \"mem=<size>\" we observe a pafe fault that happens.\n\n    BUG: unable to handle page fault for address: ffff97793ff47000\n    RIP: ima_restore_measurement_list+0xdc/0x45a\n    #PF: error_code(0x0000)  not-present page\n\nThis happens on x86_64 only, as this is already fixed in aarch64 in\ncommit: cbf9c4b9617b (\"of: check previous kernel's ima-kexec-buffer\nagainst memory bounds\")\n\n\nThis patch (of 3):\n\nWhen the second-stage kernel is booted with a limiting command line (e.g. \n\"mem=<size>\"), the IMA measurement buffer handed over from the previous\nkernel may fall outside the addressable RAM of the new kernel.  Accessing\nsuch a buffer can fault during early restore.\n\nIntroduce a small generic helper, ima_validate_range(), which verifies\nthat a physical [start, end] range for the previous-kernel IMA buffer lies\nwithin addressable memory:\n\t- On x86, use pfn_range_is_mapped().\n\t- On OF based architectures, use page_is_ram()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"5bfa1941ec40d5bed68f3e3f22ea13aff9c6d67a","versionType":"git"},{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"43308106a1762b72f3b20a44b75b2df5cb25b77b","versionType":"git"},{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"f11d7d088f5ed54b31c6735854c12845eb60eb4a","versionType":"git"},{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"9e1f51c1ad57cc76a0e8b5eb27038f8973fff4fa","versionType":"git"},{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"5366ec7d2f793ce703c403d7fd4c25a3db365b9d","versionType":"git"},{"version":"b69a2afd5afce9bf6d56e349d6ab592c916e20f2","status":"affected","lessThan":"10d1c75ed4382a8e79874379caa2ead8952734f9","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/linux/ima.h","security/integrity/ima/ima_kexec.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.0","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.77","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.16","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.6","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/linux/ima.h","security/integrity/ima/ima_kexec.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/5bfa1941ec40d5bed68f3e3f22ea13aff9c6d67a"},{"url":"https://git.kernel.org/stable/c/43308106a1762b72f3b20a44b75b2df5cb25b77b"},{"url":"https://git.kernel.org/stable/c/f11d7d088f5ed54b31c6735854c12845eb60eb4a"},{"url":"https://git.kernel.org/stable/c/9e1f51c1ad57cc76a0e8b5eb27038f8973fff4fa"},{"url":"https://git.kernel.org/stable/c/5366ec7d2f793ce703c403d7fd4c25a3db365b9d"},{"url":"https://git.kernel.org/stable/c/10d1c75ed4382a8e79874379caa2ead8952734f9"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-30T12:25:03.802Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.1.191"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.6.143"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.12.77"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.18.16"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.19.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"7.0"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}