News for hackers. Stuff that matters.
Re:Reading privileged memory with a side-channel by kibwen on Wednesday January 03, 2018 @07:19PM (#16066810)
> Mitigation is to insert mfence instructions throughout jit generated sandboxed code making it very slow, ugh.

Here's the synchronized announcement from Chrome/Chromium: https://sites.google.com/a/chromium.org/dev/Home/chromium-se...

"Chrome's JavaScript engine, V8, will include mitigations starting with Chrome 64, which will be released on or around January 23rd 2018. Future Chrome releases will include additional mitigations and hardening measures which will further reduce the impact of this class of attack. The mitigations may incur a performance penalty."

Chrome 64 will be hitting stable this month, which means that it ought to be possible to benchmark the performance penalty via testing in Chrome beta. Anybody tried yet?

Re:Reading privileged memory with a side-channel by dannyw on Wednesday January 03, 2018 @07:40PM (#16066928)
The mitigations are to disable SharedArrayBuffer and severely round performance.now(). Not good that there aren’t other less intrusive ways to mitigate.
Re:Reading privileged memory with a side-channel by kibwen on Wednesday January 03, 2018 @07:46PM (#16066957)
I don't get the impression that those are the full extent of the changes though; I think those two were called out only because they're API changes rather than implementation details. Haven't checked the code so I could be wrong, of course.
Re:Reading privileged memory with a side-channel by mirashii on Wednesday January 03, 2018 @09:04PM (#16067400)
A little bit more info can be found here [1]. In particular, site isolation [2] will also assist in protecting against this vulnerability.

[1] https://support.google.com/faqs/answer/7622138#chrome [2] http://www.chromium.org/Home/chromium-security/site-isolatio...

Re:Reading privileged memory with a side-channel by DannyDaemonic on Thursday January 04, 2018 @01:01AM (#16068371)
Would it be practical to run each javascript VM in it's own sandbox?

Edit: Apparently you can already do something like this. Seems to be an option for Chrome starting with 63. (Which was an October release I believe?

http://www.chromium.org/Home/chromium-security/site-isolatio...

Re:Reading privileged memory with a side-channel by aidenn0 on Wednesday January 03, 2018 @08:18PM (#16067160)
That can't be right because they already round performance.now() so the Spectre attack didn't use it (it instead used a webworker with a tight-loop incrementing a counter)
Re:Reading privileged memory with a side-channel by olliej on Wednesday January 03, 2018 @09:07PM (#16067417)
the tight loop iteration used a shared array buffer to provide a high resolution timer, specifically to deal with the obvious fix of truncating precision of performance.now().

The reason for /further/ truncating performance.now() is that the relative cost in this attack means that you don't need as much precision as was needed for the original (page table? I think) attack.

A SAB timer just needs to increment a counter in one thread and read it in the host thread and the granularity is however long it takes to get through a for-loop.

Re:Reading privileged memory with a side-channel by aidenn0 on Wednesday January 03, 2018 @10:52PM (#16067910)
Thanks, I missed how important SAB was to their webworker timer.
Re:Reading privileged memory with a side-channel by jchw on Wednesday January 03, 2018 @08:10PM (#16067116)
> ...severely round performance.now().

This sucks, and is a side-effect that I didn't even think about. I guess it's probably pretty effective, but it will make benchmarking a lot harder, since you'll probably now have to do a lot more runs.

Re:Reading privileged memory with a side-channel by gchadwick on Thursday January 04, 2018 @05:25AM (#16069225)
If it was a big issue you can always introduce a 'benchmark mode' switch that allows you to put resolution back into the counter when you want to run a benchmark. Display a 'WARNING BROWSER INSECURE IN THIS MODE' banner for good measure.
Re:Reading privileged memory with a side-channel by user5994461 on Thursday January 04, 2018 @02:12AM (#16068579)
Doubt that. The Firefox news said they will round to 20 us.

That's much more accurate than necessary to benchmark any software code.

Re:Reading privileged memory with a side-channel by londons_explore on Thursday January 04, 2018 @07:55AM (#16069960)
Those are the mitigations firefox is doing. Is chrome doing the same?
Re:Reading privileged memory with a side-channel by mschuetz on Thursday January 04, 2018 @06:45AM (#16069615)
For some reason, performance.now() and even the performance profiler are capped at 1 milisecond precision on my machine, which make both pretty much useles. Can only get better for me. :|