the Chromium logo

The Chromium Projects

Microarchitectural Data Sampling on Chrome OS

Microarchitectural Data Sampling on Chrome OS

(CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, and CVE-2019-11091)

Vulnerability Impact

Microarchitectural Data Sampling (MDS) is a group of vulnerabilities that allow an attacker to potentially read sensitive data. If Chrome processes are attacked, these sensitive data could include website contents as well as passwords, credit card numbers, or cookies. The vulnerabilities can also be exploited to read host memory from inside a virtual machine, or for an Android App to read privileged process memory (e.g. keymaster). See below for affected devices.

Chrome OS Response

To protect users, Chrome OS 74 disables Hyper-Threading by default. For the majority of our users, whose workflows are primarily interactive, this mitigates the security risk of MDS without a noticeable loss of responsiveness. Chrome OS 75 will contain additional mitigations.

Users concerned about the performance loss, such as those running CPU intensive workloads, may enable Hyper-Threading on a per machine basis. The setting is located at chrome://flags#scheduler-configuration. The "performance" setting chooses the configuration that enables Hyper-Threading. The "conservative" setting chooses the configuration that disables Hyper-Threading.

Enterprises who wish to set Hyper-Threading policy organizationally may use the enterprise policy named “SchedulerConfiguration.”

Hyper-Threading Policy Guidance

The decision to disable or enable Hyper-Threading is a security versus performance tradeoff. With Hyper-Threading disabled, Intel CPUs may experience reduced performance, which varies depending on the workload. But, with Hyper-Threading enabled, users could execute code, such as by visiting a website or running an Android app, that exploits MDS to read sensitive memory contents.

As of May 14th, 2019, Google is not aware of any active exploitation of the MDS vulnerabilities. Users and customers who process particularly sensitive data on their Chrome OS devices are nonetheless advised to disable Hyper-Threading as a measure of caution.

Vulnerability Description

Microarchitectural Data Sampling (MDS) refers to a set of speculative execution side-channel vulnerabilities which potentially allow results from previous execution on a core to be observed across security boundaries via microarchitectural state, on certain Intel CPUs. They are described in Intel's announcement, and referred to as MSBDS/CVE-2018-12126, MLPDS/CVE-2018-12127, MFBDS/CVE-2018-12130, and MDSUM/CVE-2019-11091. See below for more details.

Microarchitectural Store Buffer Data Sampling (MSBDS) and Microarchitectural Fill Buffer Data Sampling (MFBDS)

(CVE-2018-1212 and CVE-2018-12130 respectively)

Intel CPUs use microarchitectural data structures known as the fill buffer and store buffer. The fill buffer contains loaded data pending insertion into the L1 cache. The store buffer contains stored data pending write to the memory subsystem. Concurrently executing threads, on the same physical CPU core, may potentially read the contents of prior entries for these buffers by observing timing side channels when speculatively executed.

Microarchitectural Load Port Data Sampling (MLPDS)

(CVE-2018-12127)

Load ports are used by the CPUs to perform load operations from memory or I/O. The bus in the load ports may retain data from old operations, allowing one process to leak data from another process through speculative execution side channels.

Microarchitectural Data Sampling Uncacheable Memory (MDSUM)

(CVE-2019-11091)

Uncacheable memory (UC) is read from RAM without filling the CPU’s cache with a new line. However, uncacheable memory does still move through the store buffers, fill buffers, and load ports;allowing data stored in UC regions to still be leaked via the mechanisms described above.

Affected Devices

Chrome OS devices with affected Intel CPUs, supported as of May 14th, 2019, are as follows:

AOpen Chromebase Commercial

AOpen Chromebox Commercial

ASI Chromebook

ASUS Chromebook C200MA

ASUS Chromebook C300MA

ASUS Chromebook Flip C302

ASUS Chromebox 3

ASUS Chromebox CN60

ASUS Chromebox CN62

Acer C720 Chromebook

Acer Chromebase 24

Acer Chromebook 11 (C740)

Acer Chromebook 11 (C771 / C771T)

Acer Chromebook 13 (CB713-1W )

Acer Chromebook 15 (C910 / CB5-571)

Acer Chromebook 15 (CB3-531)

Acer Chromebook Spin 13 (CP713-1WN)

Acer Chromebox

Acer Chromebox CXI2

Acer Chromebox CXI3

Bobicus Chromebook 11

CTL Chromebox CBx1

CTL N6 Education Chromebook

Chromebook 11 (C730 / CB3-111)

Chromebook 11 (C735)

Chromebook 14 for work (CP5-471)

Chromebox Reference

Consumer Chromebook

Crambo Chromebook

Dell Chromebook 11

Dell Chromebook 11 (3120)

Dell Chromebook 13 3380

Dell Chromebook 13 7310

Dell Chromebox

Dell Inspiron Chromebook 14 2-in-1 7486

Education Chromebook

eduGear Chromebook R

Edxis Chromebook

Edxis Education Chromebook

Google Chromebook Pixel (2015)

Google Pixelbook

HEXA Chromebook Pi

HP Chromebook 11 2100-2199 / HP Chromebook 11 G3

HP Chromebook 11 2200-2299 / HP Chromebook 11 G4/G4 EE

HP Chromebook 13 G1

HP Chromebook 14

HP Chromebook 14 ak000-099 / HP Chromebook 14 G4

HP Chromebook x2

HP Chromebook x360 14

HP Chromebox CB1-(000-099) / HP Chromebox G1/ HP Chromebox for Meetings

HP Chromebox G2

Haier Chromebook 11 G2

JP Sa Couto Chromebook

LG Chromebase 22CB25S

LG Chromebase 22CV241

Lenovo 100S Chromebook

Lenovo N20 Chromebook

Lenovo N21 Chromebook

Lenovo ThinkCentre Chromebox

Lenovo ThinkPad 11e Chromebook

Lenovo Thinkpad X131e Chromebook

M&A Chromebook

Pixel Slate

RGS Education Chromebook

Samsung Chromebook 2 11 - XE500C12

Samsung Chromebook Plus (LTE)

Samsung Chromebook Plus (V2)

Samsung Chromebook Pro

Senkatel C1101 Chromebook

Thinkpad 13 Chromebook

Toshiba Chromebook

Toshiba Chromebook 2

Toshiba Chromebook 2 (2015 Edition)

True IDC Chromebook

Videonet Chromebook

ViewSonic NMP660 Chromebox

Yoga C630 Chromebook