{"api_version":"1","generated_at":"2026-05-28T02:44:04+00:00","cve":"CVE-2026-46059","urls":{"html":"https://cve.report/CVE-2026-46059","api":"https://cve.report/api/cve/CVE-2026-46059.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-46059","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-46059"},"summary":{"title":"KVM: nSVM: Always use NextRIP as vmcb02's NextRIP after first L2 VMRUN","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: nSVM: Always use NextRIP as vmcb02's NextRIP after first L2 VMRUN\n\nFor guests with NRIPS disabled, L1 does not provide NextRIP when running\nan L2 with an injected soft interrupt, instead it advances the current RIP\nbefore running it. KVM uses the current RIP as the NextRIP in vmcb02 to\nemulate a CPU without NRIPS.\n\nHowever, after L2 runs the first time, NextRIP will be updated by the CPU\nand/or KVM, and the current RIP is no longer the correct value to use in\nvmcb02.  Hence, after save/restore, use the current RIP if and only if a\nnested run is pending, otherwise use NextRIP.  Give soft_int_next_rip the\nsame treatment, as it's the same logic, just for a narrower use case.\n\n[sean: give soft_int_next_rip the same treatment]","state":"PUBLISHED","assigner":"Linux","published_at":"2026-05-27 14:17:25","updated_at":"2026-05-27 14:48:03"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/3428ed1529a1af4cce5aff6c5bd2fcc39ad726bb","name":"https://git.kernel.org/stable/c/3428ed1529a1af4cce5aff6c5bd2fcc39ad726bb","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/69fe1411a5ce678b4da6489b5d2282b4e1d13acf","name":"https://git.kernel.org/stable/c/69fe1411a5ce678b4da6489b5d2282b4e1d13acf","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/8d397582f6b5e9fbcf09781c7c934b4910e94a50","name":"https://git.kernel.org/stable/c/8d397582f6b5e9fbcf09781c7c934b4910e94a50","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-46059","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-46059","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cc440cdad5b7a4c1de12dace725209eb3e0cf663 3428ed1529a1af4cce5aff6c5bd2fcc39ad726bb git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cc440cdad5b7a4c1de12dace725209eb3e0cf663 69fe1411a5ce678b4da6489b5d2282b4e1d13acf git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cc440cdad5b7a4c1de12dace725209eb3e0cf663 8d397582f6b5e9fbcf09781c7c934b4910e94a50 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.8","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.8 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.27 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0.4 7.0.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1-rc1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["arch/x86/kvm/svm/nested.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"3428ed1529a1af4cce5aff6c5bd2fcc39ad726bb","status":"affected","version":"cc440cdad5b7a4c1de12dace725209eb3e0cf663","versionType":"git"},{"lessThan":"69fe1411a5ce678b4da6489b5d2282b4e1d13acf","status":"affected","version":"cc440cdad5b7a4c1de12dace725209eb3e0cf663","versionType":"git"},{"lessThan":"8d397582f6b5e9fbcf09781c7c934b4910e94a50","status":"affected","version":"cc440cdad5b7a4c1de12dace725209eb3e0cf663","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["arch/x86/kvm/svm/nested.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"5.8"},{"lessThan":"5.8","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.27","versionType":"semver"},{"lessThanOrEqual":"7.0.*","status":"unaffected","version":"7.0.4","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.1-rc1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.27","versionStartIncluding":"5.8","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0.4","versionStartIncluding":"5.8","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1-rc1","versionStartIncluding":"5.8","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: nSVM: Always use NextRIP as vmcb02's NextRIP after first L2 VMRUN\n\nFor guests with NRIPS disabled, L1 does not provide NextRIP when running\nan L2 with an injected soft interrupt, instead it advances the current RIP\nbefore running it. KVM uses the current RIP as the NextRIP in vmcb02 to\nemulate a CPU without NRIPS.\n\nHowever, after L2 runs the first time, NextRIP will be updated by the CPU\nand/or KVM, and the current RIP is no longer the correct value to use in\nvmcb02.  Hence, after save/restore, use the current RIP if and only if a\nnested run is pending, otherwise use NextRIP.  Give soft_int_next_rip the\nsame treatment, as it's the same logic, just for a narrower use case.\n\n[sean: give soft_int_next_rip the same treatment]"}],"providerMetadata":{"dateUpdated":"2026-05-27T12:57:19.928Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/3428ed1529a1af4cce5aff6c5bd2fcc39ad726bb"},{"url":"https://git.kernel.org/stable/c/69fe1411a5ce678b4da6489b5d2282b4e1d13acf"},{"url":"https://git.kernel.org/stable/c/8d397582f6b5e9fbcf09781c7c934b4910e94a50"}],"title":"KVM: nSVM: Always use NextRIP as vmcb02's NextRIP after first L2 VMRUN","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-46059","datePublished":"2026-05-27T12:57:19.928Z","dateReserved":"2026-05-13T15:03:33.095Z","dateUpdated":"2026-05-27T12:57:19.928Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-05-27 14:17:25","lastModifiedDate":"2026-05-27 14:48:03","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"46059","Ordinal":"1","Title":"KVM: nSVM: Always use NextRIP as vmcb02's NextRIP after first L2","CVE":"CVE-2026-46059","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"46059","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: nSVM: Always use NextRIP as vmcb02's NextRIP after first L2 VMRUN\n\nFor guests with NRIPS disabled, L1 does not provide NextRIP when running\nan L2 with an injected soft interrupt, instead it advances the current RIP\nbefore running it. KVM uses the current RIP as the NextRIP in vmcb02 to\nemulate a CPU without NRIPS.\n\nHowever, after L2 runs the first time, NextRIP will be updated by the CPU\nand/or KVM, and the current RIP is no longer the correct value to use in\nvmcb02.  Hence, after save/restore, use the current RIP if and only if a\nnested run is pending, otherwise use NextRIP.  Give soft_int_next_rip the\nsame treatment, as it's the same logic, just for a narrower use case.\n\n[sean: give soft_int_next_rip the same treatment]","Type":"Description","Title":"KVM: nSVM: Always use NextRIP as vmcb02's NextRIP after first L2"}]}}}