AFAIK, all mitigable meltdown / spectre variants have software mitigation except for variant 3a and 4. Why is this the case?

For variant 4, a straightforward software mitigation is to place lfence before all memory load operations. However, according to section 4.1 of Spectre is here to stay, this will seriously slow things down. I guess this is why it is not implemented in practice.

However, for variant 3a, according to the Mitigation section of the Intel security advisory, the microcode update ensures that rdmsr doesn't speculatively return when we aren't in ring 0 or when rdmsr is configured to cause an VM exit. We can have the following software mitigation:

if in ring 0 and VM exit bit not set:
    do nothing

Does this work? If it does, why isn't it used in practice?


You must log in to answer this question.

Browse other questions tagged .