Re: update spectre v2 microcodes blacklist

From: David Woodhouse
Date: Mon Feb 12 2018 - 04:35:36 EST




On Sat, 2018-02-10 at 20:14 +0300, Alexander Sergeyev wrote:
> >
> > I didn't fully match the updated revision guidance and spectre_bad_microcodes
> I compared these lists and it seems that the only difference is about skylakes.Â
> Everything else is covered by less-or-equal criteria on revision version.
>
> Both desktop and mobile skylakes are stated to be unaffected for 0xC2:
>
> { INTEL_FAM6_SKYLAKE_DESKTOP,ÂÂÂÂ0x03, 0xc2 }, // signature 0x000506E3
> { INTEL_FAM6_SKYLAKE_MOBILE,ÂÂÂÂÂ0x03, 0xc2 }, // signature 0x000406E3
>
> I reformated the Intel bulletin into json format for ease of automation andÂ
> batch processing -- it is attached.
>
> Raw diff between the mainline blacklist and the bulletin looks like:
> @@ -1,5 +1,6 @@
> Â{ INTEL_FAM6_BROADWELL_CORE,ÂÂÂÂÂ0x04, 0x28 },
> Â{ INTEL_FAM6_BROADWELL_GT3E,ÂÂÂÂÂ0x01, 0x1b },
> +{ INTEL_FAM6_BROADWELL_X,ÂÂÂÂÂÂÂÂ0x01, 0x0b000023 },
> Â{ INTEL_FAM6_BROADWELL_X,ÂÂÂÂÂÂÂÂ0x01, 0x0b000025 },

That's redundant since blacklisting 0x0b000025 will also stop us from
using 0x0b000023 anyway.

> -{ INTEL_FAM6_KABYLAKE_DESKTOP,ÂÂÂ0x09, 0x84 },
> -{ INTEL_FAM6_KABYLAKE_DESKTOP,ÂÂÂ0x0a, 0x84 },
> -{ INTEL_FAM6_KABYLAKE_DESKTOP,ÂÂÂ0x0b, 0x84 },
> -{ INTEL_FAM6_KABYLAKE_MOBILE,ÂÂÂÂ0x09, 0x84 },
> -{ INTEL_FAM6_KABYLAKE_MOBILE,ÂÂÂÂ0x0a, 0x84 },

No, let's not assume 0x84 will be safe on those just yet. Intel
mentioned 0x84 as bad in one of the revisions of the doc, and it's
safer to leave it blacklisted until they explicitly say otherwise.

> -{ INTEL_FAM6_SKYLAKE_DESKTOP,ÂÂÂÂ0x03, 0xc2 },
> -{ INTEL_FAM6_SKYLAKE_MOBILE,ÂÂÂÂÂ0x03, 0xc2 },

OK. With 0xc2 being exonerated, I believe there is *no* publicly
released microcode for these which needs to be blacklisted, so they can
be removed entirely.

> -{ INTEL_FAM6_SKYLAKE_X,ÂÂÂÂÂÂÂÂÂÂ0x03, 0x0100013e },

Again, that appeared in an earlier version of the document and hasn't
been explicitly cleared.

> +{ INTEL_FAM6_SKYLAKE_X,ÂÂÂÂÂÂÂÂÂÂ0x04, 0x0200003a },
> Â{ INTEL_FAM6_SKYLAKE_X,ÂÂÂÂÂÂÂÂÂÂ0x04, 0x0200003c },

Redundant again.

> Note: Gemini Lake and Sandy Bridge are not considered (observed in wild).

Ah, but we have more information now from the doc.Â

The Gemini Lake 0x22 was observed in the wild, sure, but is also
explicitly mentioned as OK in the latest doc. So I removed it from the
blacklist (again, with no prior Gemini Lake bad microcode, so the line
can be removed entirely).

The Sandy Bridge ones observed in the wild are, however, *newer* than
the "Pre-Mitigation Production MCU" listed for the corresponding CPU in
the table, and thus we should assume they should still be blacklisted.

Attachment: smime.p7s
Description: S/MIME cryptographic signature