---
id: CVE-2026-52959
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  virt: sev-guest: Do not use host-controlled page order in cleanup path

  When issuing an extended guest request (SVM_VMGEXIT_EXT_GUEST_REQUEST),
  get_ext_report() allocat…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  virt: sev-guest: Do not use host-controlled page order in cleanup path

  When issuing an extended guest request (SVM_VMGEXIT_EXT_GUEST_REQUEST),
  get_ext_report() allocat…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
published: '2026-06-24'
updated: '2026-07-10'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-52959'
references:
  - url: 'https://git.kernel.org/stable/c/23e6a1ca04ae44806439a5a446e62e4d42e80bb4'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/3f6fb0211b39aaa1b841260681dd02ca6b693ed5'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/9e48b4f813d2c3db75d522aa82ab705ce04b7e2d'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
epss: 0.00113
epssPercentile: 0.01294
ingestedAt: '2026-07-11T13:13:24.921Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

virt: sev-guest: Do not use host-controlled page order in cleanup path

When issuing an extended guest request (SVM_VMGEXIT_EXT_GUEST_REQUEST),
get_ext_report() allocates a buffer to retrieve a certificate blob from the
host, keeping track of its size in report_req->certs_len.

However, the host may return SNP_GUEST_VMM_ERR_INVALID_LEN, indicating
an invalid buffer size, as well as the expected length of such buffer.
get_ext_report() subsequently updates report_req->certs_len with the
host-controlled value, and cleans up the buffer by computing a page order
from such value. This is incorrect, as the host-provided length may not
match the page order of the original allocation, potentially resulting
in corruption in the page allocator.

Fix this by using alloc_pages_exact() instead, and reusing @npages to
compute the size passed to free_pages_exact(). For consistency, also
use @npages to compute the size when allocating the pages, even though
this last change has no functional effect.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
