Analysis of Chromium issue 1196683, 1195777 (2021)
iamelli0t.github.io
iamelli0t.github.io
Although it looks like in these cases the issues were reverse-engineered in <1 day (making release timing less of a solution), two items in those that stand out to me as potentially helpful are "land tests in-tree later" and "bundle with other changes in the same area."
[0] https://firefox-source-docs.mozilla.org/bug-mgmt/processes/s...
[1] https://firefox-source-docs.mozilla.org/bug-mgmt/processes/f...
Also, in this case, both bugs would need to be combined with a zero-day Chrome sandbox escape vulnerability to achieve exploitability.
If anything, I'm more worried that the fixes weren't backported more urgently and that CVEs do not seem to have been assigned. But this seems to have been a success for defense in depth, at least.
The reason for omitting tests is because they are essentially the exploits themselves; omission raises the barrier to entry, as somebody has to be skilled enough to craft an exploit based on the source code change.
While security fixes are typically pushed out on all supported branches within a very short window of time, anything that buys time is useful imho.
- The article mentions the sample exploit is based on the test case
- The point of obfuscation isn't to prevent exploitation, it's to delay it
- A sibling mentions the delay between patch and release as an issue; because of the only ~1 day delay here it seems like this was intentionally merged right before release, so buying even a day (or two or three, to account for time to update) would be enough to mitigate most of the impact
There's a big difference between reading a snippet of JS and understanding the inner workings of a JIT, especially under time pressure.
https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec...
On most web pages, you can scroll the entire document by putting the cursor anywhere on the page.
On this web site, you can only scroll if your cursor is within the <main> element, which has a rather narrow width. So most of the page area is not scrollable. Also, the CSS hides the scrollbar so that no affordances are given.
Is there some reason this sort of user-hostile design is becoming more and more common?
Is there something that I can do, client side perhaps, to fix it? I don't know anything about how modern web works, but perhaps there's an element I can remove with ublock origin to restore sane behavior?
I'm aware of the HN guidelines re: complaining about tangential annoyances, so apologies in advance if this (my) comment is "part of the problem", but I suspect the readership here would be the sort of people who might have an answer.
Edit: Making matters even worse, I can't even save the page as a PDF for reading later! It only captures what's visible at the time. :( Somebody outta do something about this...
https://github.com/t-mart/kill-sticky
Just add a little bit of code to a bookmark button, it works wonderfully.
Click the button and your scrollbar returns, the keyboard works again, _AND_ the page renders to a PDF beautifully.
You're welcome. :)
c'mon, will we ever stop using JIT in browsers?
Just take a look at this article from Microsoft Browser Vulnerability Research where they do challenge this and perform benchmarks without JIT
>https://microsoftedge.github.io/edgevr/posts/Super-Duper-Sec...
>Looking at CVE (Common Vulnerabilities and Exposures) data after 2019 shows that roughly 45% of CVEs issued for V8 were related to the JIT engine.
...but if that only solves half the vulnerabilities I don't think it's worth it. Still worth keeping in mind in case that ratio shifts significantly.
A slightly more feasible way forward here is replacing JavaScript with dear god anything else but JavaScript but that's a long way off. WebAssembly seems to have stalled.
Can you elaborate?