CVE-2026-63794

KVM: SVM: Fix page overflow in sev_dbg_crypt() for ENCRYPT path

HIGH
7.8
CVSS Score
Published: July 19, 2026 at 12:02 PM UTC
Updated: August 17, 2026 at 05:17 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.8
Exploit prediction
EPSS 0.1%

Description

In the Linux kernel, the following vulnerability has been resolved: KVM: SVM: Fix page overflow in sev_dbg_crypt() for ENCRYPT path In sev_dbg_crypt(), the per-iteration transfer length is bounded by the source page offset (PAGE_SIZE - s_off) but not by the destination page offset (PAGE_SIZE - d_off). When d_off > s_off, the encrypt path (__sev_dbg_encrypt_user) performs a read-modify-write using a single-page intermediate buffer (dst_tpage): 1. __sev_dbg_decrypt() expands the size to round_up(len + (d_off & 15), 16) before issuing the PSP command. If len + (d_off & 15) > PAGE_SIZE, the PSP writes beyond the end of the 4096-byte dst_tpage allocation. 2. The subsequent memcpy()/copy_from_user() into page_address(dst_tpage) + (d_off & 15) of 'len' bytes overflows by up to 15 bytes under the same condition. Trigger example: s_off = 0, d_off = 1, debug.len = PAGE_SIZE - the PSP is instructed to write round_up(4097, 16) = 4112 bytes to a 4096-byte buffer. Fix by also bounding len by (PAGE_SIZE - d_off), the same check that sev_send_update_data() already performs for its single-page guest region. ================================================================== BUG: KASAN: slab-use-after-free in sev_dbg_crypt+0x993/0xd10 [kvm_amd] Write of size 4095 at addr ff110062293bb009 by task sev_dbg_test/228214 CPU: 96 UID: 0 PID: 228214 Comm: sev_dbg_test Tainted: G U W 7.0.0-smp--5ce9b0c48211-dbg #156 PREEMPTLAZY Tainted: [U]=USER, [W]=WARN Hardware name: Google Astoria/astoria, BIOS 0.20250817.1-0 08/25/2025 Call Trace: <TASK> dump_stack_lvl+0x54/0x70 print_report+0xbc/0x260 kasan_report+0xa2/0xd0 kasan_check_range+0x25f/0x2c0 __asan_memcpy+0x40/0x70 sev_dbg_crypt+0x993/0xd10 [kvm_amd] sev_mem_enc_ioctl+0x33c/0x450 [kvm_amd] kvm_vm_ioctl+0x65d/0x6d0 [kvm] __se_sys_ioctl+0xb2/0x100 do_syscall_64+0xe8/0x870 entry_SYSCALL_64_after_hwframe+0x4b/0x53 </TASK> The buggy address belongs to the physical page: page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x7fe72b6a0 pfn:0x62293bb memcg:ff11000112827d82 flags: 0x1400000000000000(node=1|zone=1) raw: 1400000000000000 0000000000000000 dead000000000122 0000000000000000 raw: 00000007fe72b6a0 0000000000000000 00000001ffffffff ff11000112827d82 page dumped because: kasan: bad access detected Memory state around the buggy address: ff110062293bbf00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff110062293bbf80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ff110062293bc000: fa fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc ^ ff110062293bc080: fa fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc ff110062293bc100: fa fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc ================================================================== Disabling lock debugging due to kernel taint [sean: add sample KASAN splat, Fixes, and stable@]

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.16 ≤ v < 5.10.2604.16 ≤ v < 5.15.2114.16 ≤ v < 6.1.1774.16 ≤ v < 6.12.954.16 ≤ v < 6.18.384.16 ≤ v < 6.6.1444.16 ≤ v < 7.1.34.16 ≤ v < 7.25.11 ≤ v < 5.15.2115.16 ≤ v < 6.1.1776.13 ≤ v < 6.18.386.19 ≤ v < 7.1.36.2 ≤ v < 6.6.1446.7 ≤ v < 6.12.9524f41fb23a39bc2b6f190dcef35a5813a4bf183a4.16
Vendor states this is fixed in 2753a097d1fe24c4351c608048612c74108aa89f (fixed)
Vendor states this is fixed in 64f2449841ffc7d203183aa4c748c9c77951ecc5 (fixed)
Vendor states this is fixed in 720949ed666f34ff28ffdfe1471a5861d1e41fdf (fixed)
Vendor states this is fixed in 78ee2d50185a037b3d2452a97f3dad69c3f7f389 (fixed)
Vendor states this is fixed in 889c2a9c59897ca912bf39df5bb92555a0a13df4 (fixed)
Vendor states this is fixed in 9349b50f4b11f135fe73b56cb2c2c872d8bc71d7 (fixed)
Vendor states this is fixed in e1a0fe288dee07b7da25a71e007c1ecd1080315b (fixed)
Vendor states this is fixed in f701ae476cb92a3a3d8844bb39bb63b4512684c8 (fixed)
Vendor states this is fixed in 4.16 (unaffected)
Vendor states this is fixed in 5.10.260 (unaffected)
Vendor states this is fixed in 5.15.211 (unaffected)
Vendor states this is fixed in 6.1.177 (unaffected)
Vendor states this is fixed in 6.12.95 (unaffected)
Vendor states this is fixed in 6.18.38 (unaffected)
Vendor states this is fixed in 6.6.144 (unaffected)
Vendor states this is fixed in 7.1.3 (unaffected)
Vendor states this is fixed in 7.2 (unaffected)

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
HIGH
Integrity
HIGH
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-787

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card