Ez egy baromság szerintem.
Valaki magyarázza már el, hogy lehet az, hogy
"The fault will be handled before the stack switch, which means the exception handler will be run at ring0 with an attacker's chosen RSP causing a privilege escalation."
Tekintettel arra, hogy a SYSENTER/SYSEXIT utasítássokkal ellentétben a SYSCALL/SYSRET nem használ stacket és nem is vált, az exception handler meg x86-on NEM tudja használni a ring3-as stacket.
Azaz:
1. ha nem változik a stack, akkor milyen stack switch-ről beszél...?
2. ha van stack switch az exception handlerben, akkor meg miért is használná a felhasználó által megadott RSP-t?
3. végül ha sikerül is módosítani a stacket, és rávenni az exception handlert hogy azt használja, mit számít az, mikor a SYSCALL/SYSRET egyáltalán _nem_ nem nyúl hozzá (azaz a paraméterek tipikusan regiszterekben adódnak át, nem stacken keresztül), az exception handler paramétereit meg közvetlenül a ISR hívás előtt, a CPU pakolja a stackbe, így ring3-ról semmiképp, de még ring0-ról sem befolyásolható?
(Az egyetlen, amit el bírok képzelni, bár nagyon nyakatekert, ha valami **** kernelben a SYSCALL által szolgáltatott R11 és RCX regisztereket lementi a user stackbe (sicc!) majd SYSRET előtt visszatölti, de aki ilyent csinál az szimplán hülye.)