5.5

CVE-2023-52659: x86/mm: Ensure input to pfn_to_kaddr() is treated as a 64-bit type

Analyzed
AliasesUBUNTU-CVE-2023-52659DEBIAN-CVE-2023-52659
Published 17-05-2024Last modified 11-05-2026

Vulnerability summary

CVE-2023-52659 is a medium (CVSS 5.5) vulnerability in linux. EPSS estimates a 0.22% chance of exploitation in the next 30 days, higher than 12.5% of scored vulnerabilities.

Priority
Routine

Not severe (CVSS 5.5, local access); no exploitation reported by the 5 checked sources

Source freshness unavailable

How is this decided?
CVSS score
5.5/10
010
Medium · v3.1 (NVD)
EPSS score
0.22%
0%100%
Low · 0.00 pp in 30 days
KEVNot listedNot listed by any tracked catalog.
RansomwareNot flaggedNo ransomware use recorded.
Public exploits0No public exploits recorded

Advisory lineage

Upstream 0 · Downstream 14 · Related 13

Timeline

  1. 17-05-2024
    PublishedVulnerability first disclosed.
  2. 11-05-2026
    Last modifiedVulnerability information updated.

Description

In the Linux kernel, the following vulnerability has been resolved: x86/mm: Ensure input to pfn_to_kaddr() is treated as a 64-bit type On 64-bit platforms, the pfn_to_kaddr() macro requires that the input value is 64 bits in order to ensure that valid address bits don't get lost when shifting that input by PAGE_SHIFT to calculate the physical address to provide a virtual address for. One such example is in pvalidate_pages() (used by SEV-SNP guests), where the GFN in the struct used for page-state change requests is a 40-bit bit-field, so attempts to pass this GFN field directly into pfn_to_kaddr() ends up causing guest crashes when dealing with addresses above the 1TB range due to the above. Fix this issue with SEV-SNP guests, as well as any similar cases that might cause issues in current/future code, by using an inline function, instead of a macro, so that the input is implicitly cast to the expected 64-bit input type prior to performing the shift operation. While it might be argued that the issue is on the caller side, other archs/macros have taken similar approaches to deal with instances like this, such as ARM explicitly casting the input to phys_addr_t: e48866647b48 ("ARM: 8396/1: use phys_addr_t in pfn_to_kaddr()") A C inline function is even better though. [ mingo: Refined the changelog some more & added __always_inline. ]

CVSS metrics

3 scores · 3 sources · 1 version

EPSS trend

Probability

0.22%

Chance of exploitation in the next 30 days

Percentile

13%

Versus all other CVEs

30-day change

No change 0.00 pp

From 0.22% on 04-10-2026

04-10-202603-11-2026

Known exploited

Compare KEV catalogs
CISA KEV

Not in the CISA KEV catalog.

ENISA CNW

Not in the ENISA CNW catalog.

CIRCL

Not in the CIRCL catalog.

Public exploits

0 found

No public exploits indexed.

Weaknesses

CWE · root cause

No weakness data has been published for this record.

Affected systems

Version check

Known conditions: local access, low-privilege account, no user interaction (CVSS vector). Other conditions: not stated in public data.

Ubuntu82 products
  • linux< 6.8.0-35.35
  • linux-allwinner-5.19All versions (No fix recorded)
  • linux-aws< 6.8.0-1009.9
  • linux-aws-5.0All versions (No fix recorded)
  • linux-aws-5.11All versions (No fix recorded)
Linux2 products
  • linux≥ 6c3211796326a9d35618b866826ca556c8f008a8, < 325956b0173f11e98f90462be4829a8b8b0682ce | ≥ 6c3211796326a9d35618b866826ca556c8f008a8, < 7e1471888a5e6e846e9b4d306e5327db2b58e64e | ≥ 6c3211796326a9d35618b866826ca556c8f008a8, < 814305b5c23cb815ada68d43019f39050472b25f | ≥ 6c3211796326a9d35618b866826ca556c8f008a8, < 8e5647a723c49d73b9f108a8bb38e8c29d3948ea | 6.5
  • linux_kernel≥ 6.5, < 6.6.23 | ≥ 6.7, < 6.7.11 | ≥ 6.8, < 6.8.2
Debian1 product
  • linux< 6.7.12-1

3 vendors · 85 products

References

14 links
Show all 14 references