1 | <?xml version='1.0' encoding='UTF-8'?>
|
---|
2 | <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
|
---|
3 | <topic xml:lang="en-us" id="buffer-overwriting-mitigation">
|
---|
4 | <title>Buffer Overwriting and Disabling Hyper-Threading</title>
|
---|
5 |
|
---|
6 | <body>
|
---|
7 | <p> First, up-to-date CPU microcode is a prerequisite for the buffer overwriting (clearing)
|
---|
8 | mitigations. Some host OSes may install these automatically, though it has traditionally been
|
---|
9 | a task best performed by the system firmware. Please check with your system or mainboard
|
---|
10 | manufacturer for the latest firmware update. </p>
|
---|
11 | <p>
|
---|
12 | This mitigation aims at removing potentially sensitive data
|
---|
13 | from the affected buffers before running guest code. Since
|
---|
14 | this means additional work each time the guest is scheduled,
|
---|
15 | there might be some performance side effects.
|
---|
16 | </p>
|
---|
17 | <p>
|
---|
18 | We recommend disabling hyper-threading (HT) on hosts affected
|
---|
19 | by CVE-2018-12126 and CVE-2018-12127, because the affected
|
---|
20 | sets of buffers are normally shared between thread pairs and
|
---|
21 | therefore cause leaks between the threads. This is
|
---|
22 | traditionally done from the firmware setup, but some OSes also
|
---|
23 | offers ways disable HT. In some cases it may be disabled by
|
---|
24 | default, but please verify as the effectiveness of the
|
---|
25 | mitigation depends on it.
|
---|
26 | </p>
|
---|
27 | <p>
|
---|
28 | The default action taken by <ph conkeyref="vbox-conkeyref-phrases/product-name"/> is to clear the
|
---|
29 | affected buffers when a thread is scheduled to execute guest
|
---|
30 | code, rather than on each VM entry. This reduces the
|
---|
31 | performance impact, while making the assumption that the host
|
---|
32 | OS will not handle security sensitive data from interrupt
|
---|
33 | handlers and similar without taking precautions.
|
---|
34 | </p>
|
---|
35 | <p>
|
---|
36 | The <userinput>VBoxManage modifyvm</userinput> command provides a
|
---|
37 | more aggressive flushing option is provided by means of the
|
---|
38 | <codeph>--mds-clear-on-vm-entry</codeph> option. When enabled
|
---|
39 | the affected buffers will be cleared on every VM entry. The
|
---|
40 | performance impact is greater than with the default option,
|
---|
41 | though this of course depends on the workload. Workloads
|
---|
42 | producing a lot of VM exits (like networking, VGA access, and
|
---|
43 | similiar) will probably be most impacted.
|
---|
44 | </p>
|
---|
45 | <p>
|
---|
46 | For users not concerned by this security issue, the default
|
---|
47 | mitigation can be disabled using the <userinput>VBoxManage
|
---|
48 | modifyvm name --mds-clear-on-sched off</userinput> command.
|
---|
49 | </p>
|
---|
50 | </body>
|
---|
51 |
|
---|
52 | </topic>
|
---|