Speculative Execution Vulnerability

In January 2018 a new class of vulnerabilities were discovered in speculative execution. They were termed Spectre and Meltdown. Adding to this list, two new vulnerabilities have been disclosed. They affect Intel,ARM and AMD processors. Please refer to their respective advisories for affected processor models.

  • Rogue System Register Read: A new subvariant of Rogue Data Cache Load vulnerability. CVE-2018-3640 has been assigned to track this vulnerability.
  • Speculative Store Bypass: A new variant (variant 4) in Spectre and Meltdown vulnerabilities. CVE-2018-3639 has been assigned to to track this vulnerability.

Speculative Store Bypass (SSB) – CVE-2018-3639
SSB occurs when a load instruction is allowed to be executed speculatively before a dependent store instruction. This can occur if the target memory address is not known/is determined at the time of execution. This can result in stale data being read, which can be propagated to other instructions as well. Under the right circumstances stale data may be sensitive and result in information disclosure.

Under normal operation when the processor determines that the load is stale it will revert the results but the data could be already leaked via side channel attacks. For SSB to occur a load instruction must be speculatively executed on the target address before a store instruction on for the same address. And subsequent instructions that load/refer to the same value are executed speculatively and allocate the value in the cache, this allocation can be tracked via side channel attacks and leak the data.

Rogue System Register Read (RSRE) – CVE-2018-3640
As mentioned earlier this new sub variant of ‘Rogue Data Cache Load’. An attacker can leverage speculative execution and side channel cache methods to infer the system registry state from an unprivileged execution mode/context. A processor speculatively reads a system register from an unprivileged mode/context and executes subsequent non dependent instructions speculatively and commits the result to architecture registers if the speculation is valid if not they are removed.

The subsequent non dependent instructions can be used to initiate side channel attacks to infer the system register value.The inferred value can be used to bypass KALSR and locate kernel structures and kernel entry points

Mitigation
Please apply the latest patches from the respective vendors to address these vulnerabilities. Qualys customers can scan their network with the QIDs for CVE-2018-3639 and CVE-2018-3640 to detect vulnerable machines. Qualys will actively add more QIDs as respective vendors release their patches.

Reference
CPU hardware utilizing speculative execution may be vulnerable to cache side-channel attacks
Speculative Execution, variant 4: Speculative Store Bypass:CVE-2018-3639
Intel Analysis of Speculative Execution Side Channels
Vulnerability of Speculative Processors to Cache Timing Side-Channel Mechanism
Analysis and mitigation of speculative store bypass (CVE-2018-3639)
ADV180013 | Microsoft Guidance for Rogue System Register Read
ADV180012 | Microsoft Guidance for Speculative Store Bypass

Leave a Reply

Your email address will not be published. Required fields are marked *