Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 04 Jan 2018 09:21:24 -0700
From:      Brett Glass <brett@lariat.org>
To:        Eric McCorkle <eric@metricspace.net>, Dag-Erling Smørgrav <des@des.no>, Erich Dollansky <freebsd.ed.lists@sumeritec.com>
Cc:        "freebsd-security@freebsd.org" <freebsd-security@freebsd.org>, "Ronald F. Guilmette" <rfg@tristatelogic.com>
Subject:   Re: Intel hardware bug
Message-ID:  <201801041621.JAA17566@mail.lariat.net>
In-Reply-To: <736a2b77-d4a0-b03f-8a6b-6a717f5744d4@metricspace.net>
References:  <02563ce4-437c-ab96-54bb-a8b591900ba0@FreeBSD.org> <19876.1515025752@segfault.tristatelogic.com> <20180104132807.266fe46c.freebsd.ed.lists@sumeritec.com> <86vaghu0ps.fsf@desk.des.no> <201801041552.IAA17267@mail.lariat.net> <736a2b77-d4a0-b03f-8a6b-6a717f5744d4@metricspace.net>

next in thread | previous in thread | raw e-mail | index | archive | help
At 09:03 AM 1/4/2018, Eric McCorkle wrote:

>The attack looks like this:
>
>1) Fetch kernel/other process memory, which eventually faults
>2) Do a bit-shift/mask operation to pluck out one bit of the fetched
>value.  This gets executed speculatively on the fetched value in (1).
>3) Execute fetches of two different addresses depending on some bit in
>the fetched value in (1) (say, 0x100000 for 0 vs 0x200000 for 1).  This
>also gets executed speculatively despite the fact that (1) ends up faulting.
>4) Recover from fault in (1)
>5) Measure performance of accesses to the two addresses to determine
>which one is cached.

Hmmmm. The obvious way to combat this would be to make this class of fault
fatal rather than allowing recovery to occur. Of course, this would 
reveal errors
in sloppy code, which some developers would not like. (I recall how much some
folks squawked back in the olden days, when segmentation faults - remember
segments? - revealed bugs in their code. I, personally, liked segmentation
because I was a perfectionist.... I wanted my code to crash dramatically if
there was an error so I could fix it.)

--Brett Glass




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801041621.JAA17566>