CVE-2026-63794 in Linuxinfo

Summary

by MITRE • 07/19/2026

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@]

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Analysis

by VulDB Data Team • 07/19/2026

The vulnerability described in this CVE affects the Linux kernel's KVM implementation specifically within the SVM (Secure Virtual Machine) module used for AMD SEV (Secure Encrypted Virtualization). This flaw resides in the sev_dbg_crypt() function which handles cryptographic operations for debug environments in SEV-enabled virtual machines. The issue manifests as a page overflow condition that can lead to memory corruption and potentially arbitrary code execution within the hypervisor context.

The technical root cause involves an asymmetrical boundary check during the encryption path of the SEV debug functionality. While the source page offset (s_off) properly bounds the transfer length through the expression (PAGE_SIZE - s_off), the destination page offset (d_off) receives no such protection. When d_off exceeds s_off, the encrypt path uses a single-page intermediate buffer (dst_tpage) that can overflow when processing large data transfers. The specific condition occurs when len + (d_off & 15) surpasses PAGE_SIZE, causing the PSP (Platform Security Processor) to write beyond the allocated 4096-byte boundary of dst_tpage.

The operational impact of this vulnerability is significant as it enables a use-after-free condition that can be triggered through carefully crafted ioctl calls to the KVM subsystem. The KASAN (Kernel Address Sanitizer) report shows that the bug manifests as a write operation of size 4095 bytes to an address that falls within a freed memory page, indicating that the buffer overflow leads to corruption of adjacent memory regions. This particular scenario demonstrates how the system attempts to write 4112 bytes to a 4096-byte buffer when s_off = 0 and d_off = 1 with debug.len = PAGE_SIZE, resulting in up to 15 bytes of overflow during subsequent memcpy operations.

The vulnerability aligns with CWE-129: "Improper Validation of Array Index" and CWE-787: "Out-of-bounds Write" from the Common Weakness Enumeration catalog, representing a classic buffer overflow condition in kernel space. From an ATT&CK framework perspective, this maps to T1547.006: "Elevated Execution with Windows Admin Power" through privilege escalation opportunities within the hypervisor layer, and potentially T1059.001: "Command and Scripting Interpreter: PowerShell" if exploited in conjunction with guest OS attacks.

The mitigation strategy implemented in the fix involves adding an additional boundary check that mirrors the existing protection already present in sev_send_update_data() function. This fix ensures that len is bounded by (PAGE_SIZE - d_off) in addition to the existing s_off constraint, thereby preventing the scenario where destination offset calculations could cause buffer overflows. The solution follows established patterns within the kernel codebase for managing single-page buffer operations and maintains consistency with other SEV-related functions that already implement similar protections. This approach prevents the memory corruption that could otherwise lead to privilege escalation or denial of service conditions affecting the entire virtualization infrastructure.

Responsible

Linux

Reservation

07/19/2026

Disclosure

07/19/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Do you know our Splunk app?

Download it now for free!