Security Software

Vector Register Sampling / CVE-2020-0548 / INTEL-SA-00329

2020-01-27
2020-01-27
2.8

Low

Industry-wide severity ratings can be found in the National Vulnerability Database

Critical
Medium
High
Low

Overview

A speculative execution side channel variant known as Vector Register Sampling may allow the partial data values of some vector operations to be inferred under a specific set of complex conditions that include vector operations executing after a period of vector inactivity. Vector register sampling has been assigned CVE-2020-0548 with CVSS 2.8 CVSS 3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:L/I:N/A:N.

On some processors, under certain microarchitectural conditions involving a vector operation executing after a period of time where no vector operations executed, partial data values previously read from a vector register on a physical core may be propagated into unused portions of the store buffer. On processors affected by Microarchitectural Data Samping (MDS) or Transactional Asynchronous Abort (TAA), data from a store buffer entry may be inferred using one of these data sampling side channel methods. Using the MDS or TAA methods, it may be possible for malicious actors to infer data values from previously read vector registers. The vector register sampling method is not believed to affect processors that are not affected by MDS or TAA1.

Malicious software may be able to use vector register sampling to infer vector data used by previously run software, or to infer vector data used by software running on a sibling hyperthread on the same physical core, possibly even in the presence of MD_CLEAR operations.

The vector register sampling method has a smaller scope than MDS for several reasons:

  • Vector register sampling can only potentially infer the upper bits of vector registers and not generic contents of store operations or cache fills.
  • Vector register sampling can only potentially occur as a subset of the store buffer MDS method (MSBDS) as it relies on the MSBDS method to infer the store buffer contents. Thus, vector register sampling only affects hardware that is also potentially impacted by MSBDS or TAA.
  • The vector register sampling method reveals data at lower bandwidth than other techniques like MDS. Not only does vector register sampling only occur in a subset of successful MSBDS methods, but the upper bits of the vector register data can only be copied to a store buffer entry during a brief time window following a much longer period of inactivity.
  • Additionally, because the stale data is typically that of a recent vector operation, it may be unlikely for data to propagate across an MD_CLEAR operation. Intel has replicated this technique only under synthetic conditions when running on a sibling hyperthread on the same core as the victim’s hyperthread, not across an MD_CLEAR operation.

Software that is mitigated against MDS methods both already performs an MD_CLEAR operation before running untrusted software, and already helps prevent possibly malicious software from running on the sibling hyperthread of a potential victim.

Mitigation

Intel expects to release microcode updates for affected processors which will help ensure that MD_CLEAR operations (for example, a VERW instruction) will prevent older vector register data from being propagated into unused portions of the store buffer due to vector operations executing after a period where no vector operations execute. When the microcode update is released, software can discover if the microcode update contains the mitigation by checking that the patch revision number matches or is greater than the corresponding revision number in the Affected Processors table.

On processors not yet updated to mitigate vector register sampling, SMT scheduling restrictions may reduce the risk of cross-thread secret data exposure. The vector register sampling method cannot be performed on processors that are not affected by MDS or TAA1.

Processors that are affected by only TAA and not MDS2 can mitigate this issue by disabling Intel® Transactional Synchronization Extensions (Intel® TSX) through the IA32_TSX_CTRL MSR. Disabling Intel® TSX will help prevent malicious software from inferring store buffer contents and thus also help prevent vector register sampling.

Footnotes

  1. For example because IA32_ARCH_CAPABILITIES[MDS_NO] is enumerated and Intel TSX is disabled.
  2. Processors that enumerate MDS_NO.

References


Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software, or service activation. Performance varies depending on system configuration. Check with your system manufacturer or retailer or learn more at www.intel.com.

All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest Intel product specifications and roadmaps.

Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors.

Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For more complete information visit www.intel.com/benchmarks.

Performance results are based on testing as of dates shown in configurations and may not reflect all publicly available​ updates. No product or component can be absolutely secure.

The products and services described may contain defects or errors known as errata which may cause deviations from published specifications. Current characterized errata are available on request.

Intel provides these materials as-is, with no express or implied warranties.

No product or component can be absolutely secure.

Intel, the Intel logo, Intel Core, Intel Atom, Intel Xeon, Intel Xeon Phi, Intel® C Compiler, Intel Software Guard Extensions, and Intel® Trusted Execution Engine are trademarks of Intel Corporation in the U.S. and/or other countries.

*Other names and brands may be claimed as the property of others.