Skip to main content
VulnerabilityPublished Updated

CVE-2026-31590: Linux kernel · KVM: SEV: Drop WARN on large size for KVM_MEMORY_ENCRYPT_REG_REGION

Affects Linux kernelSource CVE Database V5

0
Compare

Not known to be exploited · fixed in c29ff288a2d97a6f4640a498a367cf0eb91312eb : update Linux kernel when convenient.

Data as of 6 Nov 2026, 16:04 UTC

Severity
Unrated

Rated by Threat Radar · No CVSS score from NVD or the CNA

Thin evidence

One scorer or none
CISA SSVC
Exploitation
No evidence of active exploitation and no public proof of concept
Automatable
Attackers cannot reliably automate steps 1–4 of the kill chain
Technical impact
Limited control over the software or limited information exposure

CISA SSVC assessment, 2026-11-06.

Patch
Available – fixed in c29ff288a2d97a6f4640a498a367cf0eb91312eb, b670833749ffd8681361db2bb047c6f2e3075f3a, abcd43ff579abd0a654bb4636086e78819dd5f4c +6

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 24 Apr 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 6 Nov 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • ≥ 78824fabc72e5e37d51e6e567fde70a4fc41a6d7, < c29ff288a2d97a6f4640a498a367cf0eb91312eb
Fixed in
  • c29ff288a2d97a6f4640a498a367cf0eb91312eb
LinuxLinuxAffected
  • ≥ 78824fabc72e5e37d51e6e567fde70a4fc41a6d7, < b670833749ffd8681361db2bb047c6f2e3075f3a
Fixed in
  • b670833749ffd8681361db2bb047c6f2e3075f3a
LinuxLinuxAffected
  • ≥ 78824fabc72e5e37d51e6e567fde70a4fc41a6d7, < abcd43ff579abd0a654bb4636086e78819dd5f4c
Fixed in
  • abcd43ff579abd0a654bb4636086e78819dd5f4c
LinuxLinuxAffected
  • ≥ 78824fabc72e5e37d51e6e567fde70a4fc41a6d7, < ab423e5892826202a660b5ac85d1125b0e8301a5
Fixed in
  • ab423e5892826202a660b5ac85d1125b0e8301a5
LinuxLinuxAffected
  • ≥ 78824fabc72e5e37d51e6e567fde70a4fc41a6d7, < a703933bcfa5cc76ca10e2048464600e74136099
Fixed in
  • a703933bcfa5cc76ca10e2048464600e74136099
LinuxLinuxAffected
  • ≥ 78824fabc72e5e37d51e6e567fde70a4fc41a6d7, < 28cc13ca20431b127d42d84ba10898d03e2c8267
Fixed in
  • 28cc13ca20431b127d42d84ba10898d03e2c8267

Description

In the Linux kernel, the following vulnerability has been resolved: KVM: SEV: Drop WARN on large size for KVM_MEMORY_ENCRYPT_REG_REGION Drop the WARN in sev_pin_memory() on npages overflowing an int, as the WARN is comically trivially to trigger from userspace, e.g. by doing: struct kvm_enc_region range = { .addr = 0, .size = -1ul, }; __vm_ioctl(vm, KVM_MEMORY_ENCRYPT_REG_REGION, &range); Note, the checks in sev_mem_enc_register_region() that presumably exist to verify the incoming address+size are completely worthless, as both "addr" and "size" are u64s and SEV is 64-bit only, i.e. they _can't_ be greater than ULONG_MAX. That wart will be cleaned up in the near future. if (range->addr > ULONG_MAX || range->size > ULONG_MAX) return -EINVAL; Opportunistically add a comment to explain why the code calculates the number of pages the "hard" way, e.g. instead of just shifting @ulen.

References

Community reviews

Loading reviews…