Re: [PATCH] x86, x2apic: Only WARN on broken BIOSes inside a virtualguest

From: Gleb Natapov
Date: Thu Jan 31 2013 - 13:52:12 EST


On Thu, Jan 31, 2013 at 11:40:35AM -0500, Don Zickus wrote:
> In commit "41750d3 x86, x2apic: Enable the bios request for x2apic optout"
> it was explained how OEMs are trying to opt out of using x2apics.
>
> That commit moved code around and screamed with a WARN if the BIOS
> opted out of x2apic mode. Fair enough.
>
> This code hit our RHEL distro and OEMs started complaining that the
> WARN is scaring their customers and asked we tone it down to a
> pr_warn().
>
> Before we did that, we thought we should change it upstream too.
> Upstream complained that WARN was necessary due to a serious
> security threat, namely irq injections. Hard to argue that.
>
> This left us between a rock and a hard place. We toned down the
> WARN in RHEL to keep our customers happy. But this leaves us with
> a perpetual patch in RHEL and possibly covering up a security threat.
>
> I poked around to understand the nature of the security threat and why
> OEMs would want to leave themselves vulnerable. The only security
> threat I could find was this whitepaper talking about Xen and irq
> injections:
>
> http://www.invisiblethingslab.com/resources/2011/Software%20Attacks%20on%20Intel%20VT-d.pdf
>
> After talking with folks, the threat of irq injections on virtual guests
> made sense. However, when discussing if this was possible on bare metal
> machines, we could not come up with a plausible scenario.
>
The irq injections is something that a guest with assigned device does
to attack a hypervisor it runs on. Interrupt remapping protects host
from this attack. According to pdf above if x2apic is disabled in a
hypervisor interrupt remapping can be bypassed and leave host vulnerable
to guest attack. This means that situation is exactly opposite: warning
has sense on a bare metal, but not in a guest. I am not sure that there is
a hypervisor that emulates interrupt remapping device though and without
it the warning cannot be triggered in a guest.

--
Gleb.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/