From 1bfacf06f7c215f2ada4c7870519aceee1e90768 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Tue, 15 May 2018 14:07:12 +0200 Subject: [PATCH] [NTOS:KE:X64] Zero out volatiles when returning from a system call --- ntoskrnl/ke/amd64/trap.S | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ntoskrnl/ke/amd64/trap.S b/ntoskrnl/ke/amd64/trap.S index 8efcd81d9d8..9c3c085d2e7 100644 --- a/ntoskrnl/ke/amd64/trap.S +++ b/ntoskrnl/ke/amd64/trap.S @@ -824,6 +824,16 @@ IntsEnabled: /* Swap gs back to user */ swapgs + ; Zero out volatiles + pxor xmm0, xmm0 + pxor xmm1, xmm1 + pxor xmm2, xmm2 + pxor xmm3, xmm3 + pxor xmm4, xmm4 + pxor xmm5, xmm5 + xor rdx, rdx + xor r10, r10 + /* return to user mode */ .byte HEX(48) // REX prefix to return to long mode sysret