2026-07-28 12:32CVE-2026-62435XEN
PUBLISHED5.2

grant-table: version change racing with other operations

[This CNA information record relates to multiple CVEs; the

text explains which aspects/vulnerabilities correspond to which CVE.]

With the introduction of Grant Table v2 came the requirement to be able to

switch between versions. Switching from v1 to v2 reduces the number of

valid grant references, as a bigger shared entry structure is then needed

while the shared table doesn't change size. Switching from v2 back to v1

the status frames, which are separate in v2, go away.

Code holding, but intermediately dropping and then re-acquiring the grant

table lock, sometimes wrongly assumes that said properties wouldn't change

across the window in time where the lock is not being held.

The v1 -> v2 issue is CVE-2026-62435.

The v2 -> v1 issue is CVE-2026-62436.

Affected products

Xen

Xen

consult Xen advisory XSA-501 - UNKNOWN

References

GitHub Security Advisories

GHSA-38wq-hqmp-4jj6

[This CNA information record relates to multiple CVEs; the text explains which aspects...

https://github.com/advisories/GHSA-38wq-hqmp-4jj6

[This CNA information record relates to multiple CVEs; the text explains which aspects/vulnerabilities correspond to which CVE.]

With the introduction of Grant Table v2 came the requirement to be able to switch between versions. Switching from v1 to v2 reduces the number of valid grant references, as a bigger shared entry structure is then needed while the shared table doesn't change size. Switching from v2 back to v1 the status frames, which are separate in v2, go away.

Code holding, but intermediately dropping and then re-acquiring the grant table lock, sometimes wrongly assumes that said properties wouldn't change across the window in time where the lock is not being held.

The v1 -> v2 issue is CVE-2026-62435.

The v2 -> v1 issue is CVE-2026-62436.

JSON source

https://cveawg.mitre.org/api/cve/CVE-2026-62435
Click to expand
{
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "cveMetadata": {
    "cveId": "CVE-2026-62435",
    "assignerOrgId": "23aa2041-22e1-471f-9209-9b7396fa234f",
    "assignerShortName": "XEN",
    "dateUpdated": "2026-07-28T12:32:16.287Z",
    "dateReserved": "2026-07-14T10:28:12.655Z",
    "datePublished": "2026-07-28T12:32:16.287Z",
    "state": "PUBLISHED"
  },
  "containers": {
    "cna": {
      "providerMetadata": {
        "orgId": "23aa2041-22e1-471f-9209-9b7396fa234f",
        "shortName": "XEN",
        "dateUpdated": "2026-07-28T12:32:16.287Z"
      },
      "datePublic": "2026-07-28T12:00:00.000Z",
      "title": "grant-table: version change racing with other operations",
      "descriptions": [
        {
          "lang": "en",
          "value": "[This CNA information record relates to multiple CVEs; the\ntext explains which aspects/vulnerabilities correspond to which CVE.]\n\nWith the introduction of Grant Table v2 came the requirement to be able to\nswitch between versions.  Switching from v1 to v2 reduces the number of\nvalid grant references, as a bigger shared entry structure is then needed\nwhile the shared table doesn't change size.  Switching from v2 back to v1\nthe status frames, which are separate in v2, go away.\n\nCode holding, but intermediately dropping and then re-acquiring the grant\ntable lock, sometimes wrongly assumes that said properties wouldn't change\nacross the window in time where the lock is not being held.\n\nThe v1 -> v2 issue is CVE-2026-62435.\n\nThe v2 -> v1 issue is CVE-2026-62436."
        }
      ],
      "affected": [
        {
          "vendor": "Xen",
          "product": "Xen",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "consult Xen advisory XSA-501",
              "status": "unknown"
            }
          ]
        }
      ],
      "references": [
        {
          "url": "https://xenbits.xenproject.org/xsa/advisory-501.html"
        }
      ],
      "impacts": [
        {
          "descriptions": [
            {
              "lang": "en",
              "value": "An unprivileged guest may be able to elevate its privileges to that of the\nhost.  Information leaks and Denial of Service (DoS) are possible as well."
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "value": "All Xen versions from 4.0 onwards are vulnerable.  Xen versions 3.4 and\nearlier are not vulnerable.\n\nOnly x86 guests permitted to use grant table version 2 interfaces can\nleverage this vulnerability.  On Arm, grant table v2 use is explicitly\nunsupported.\n\nOnly multi-vCPU guests can leverage this vulnerability.\n\nXen versions 4.13 and newer offer a way to build Xen without grant table\nsupport.  Such hypervisors (CONFIG_GRANT_TABLE turned off) are not\nvulnerable."
        }
      ],
      "workarounds": [
        {
          "lang": "en",
          "value": "Using the \"gnttab=max-ver:1\" hypervisor command line option will avoid\nthe vulnerability.\n\nUsing the \"max_grant_version=1\" guest configuration option for guests will\nalso avoid the vulnerability."
        }
      ],
      "credits": [
        {
          "lang": "en",
          "value": "This issue was discovered by Mark Esler.",
          "type": "finder"
        }
      ]
    }
  }
}