PROCESSORS, METHODS, SYSTEMS, AND INSTRUCTIONS TO PROTECT SHADOW STACKS

    公开(公告)号:EP4325352A2

    公开(公告)日:2024-02-21

    申请号:EP24150660.9

    申请日:2016-05-26

    申请人: Intel Corporation

    IPC分类号: G06F9/38

    摘要: Embodiments of the subject disclosure provide a processor and a system. The processor comprises: a shadow stack pointer, SSP, register to store a current SSP to identify a top of a current shadow stack; a decode unit to decode a restore shadow stack pointer instruction, the restore shadow stack pointer instruction to indicate a source operand that is to have a first SSP, the first SSP to identify a top of a first shadow stack; and an execution unit coupled with the decode unit, the execution unit, in response to the restore shadow stack pointer instruction, to: perform a plurality of security checks, including to determine whether a value derived from the first SSP is compatible with a value accessed from the first shadow stack; cause an exception, if at least one of the security checks fails; and restore an SSP to the SSP register to switch from the current shadow stack to the first shadow stack, if all of the security checks succeed.

    PROCESSORS, METHODS, SYSTEMS, AND INSTRUCTIONS TO PROTECT SHADOW STACKS

    公开(公告)号:EP4099158A1

    公开(公告)日:2022-12-07

    申请号:EP22184595.1

    申请日:2016-05-26

    申请人: INTEL Corporation

    摘要: Embodiments of the subject disclosure provide a processor and a system. The processor comprises: a shadow stack pointer (SSP) register to store an SSP, including a first SSP to identify a top of a first shadow stack, the SSP register to indicate a current SSP for a current shadow stack; a decode unit to decode a shadow stack protection instruction, the shadow stack protection instruction to indicate a second SSP, the second SSP to identify a top of a second shadow stack; and an execution unit coupled with the decode unit. The execution unit, in response to the shadow stack protection instruction, is to perform a plurality of security checks, including to determine whether the second SSP is compatible with a value stored on the second shadow stack. If at least one of the security checks fail, the execution unit is further to: not make the second SSP the current SSP; and cause an exception. If all of the security checks succeed, the execution unit is further to: change the value; and update the SSP register to the second SSP to make the second SSP the current SSP.

    PROCESSORS, METHODS, SYSTEMS, AND INSTRUCTIONS TO PROTECT SHADOW STACKS

    公开(公告)号:EP3800546A1

    公开(公告)日:2021-04-07

    申请号:EP20209381.1

    申请日:2016-05-26

    申请人: Intel Corporation

    IPC分类号: G06F9/30 G06F21/52 G06F12/14

    摘要: Embodiments of the subject disclosure provide a processor and a system. The processor comprises: a shadow stack pointer, SSP, register, the SSP register to store a first SSP to identify a top of a first currently active shadow stack; a decode unit to decode a shadow stack protection instruction, the shadow stack protection instruction to indicate a second SSP, the second SSP to identify a top of a second shadow stack that the shadow stack protection instruction is attempting to switch to; and an execution unit coupled with the decode unit. The execution unit, in response to the shadow stack protection instruction, is to: perform one or more security checks, including to determine whether the second SSP indicated by the shadow stack protection instruction matches an SSP stored on the second shadow stack; if at least one of the security checks fail: not store the second SSP to the SSP register; and cause an exception; and if all of the security checks succeed: compromise the SSP stored on the second shadow stack; and store the second SSP to the SSP register.

    MEMORY MANAGEMENT APPARATUS AND METHOD FOR MANAGING DIFFERENT PAGE TABLES FOR DIFFERENT PRIVILEGE LEVELS

    公开(公告)号:EP3716079A1

    公开(公告)日:2020-09-30

    申请号:EP20154463.2

    申请日:2020-01-30

    申请人: INTEL Corporation

    摘要: An apparatus and method for managing different page tables for different privilege levels. For example, one embodiment of a processor comprises: a first control register (1310) to store a first base address associated with program code executed at a first privilege level; a second control register (1320) to store a second base address associated with program code executed at a second privilege level lower than the first privilege level; and address translation circuitry to identify a first base translation table (1351) using the first base address responsive to a first address translation request originating from the program code executed at the first privilege level and to identify a second base translation table (1361) using the second base address responsive to a second address translation request originating from the program code executed at the second privilege level.