Earlier quoted context omitted.
Disagree on this. In Rust I can read most of the information I need to know straight from the function signatures. In Go I have to go through every line of code (and there are often a lot of lines due to Go's lack of expressive power).
Not to be argumentative, honestly, that sound pretty laughable if you don't have an equivalent of an algebraic effect system (or similar). A "function" in Rust can do a whole bunch of stuff that is not signaled by its type signature.
Chrome 0-day exploit used in Operation WizardOpium
131–140 of 159 posts
Re: Chrome 0-day exploit used in Operation WizardOpium
#132Re: Chrome 0-day exploit used in Operation WizardOpium
#133I know this is a bit a pet peeve of mine, (and not a very popular opinion) but I think the browsers are doing too much, and WebAudio is a very good example of that. Instead of standardizing something low-level to input/output audio and query the hardware, like an OS; it standardizes soooo many things and filters, including downmixers, panners, quadfilters and Convolution (for reverbs); which is where the issue is in…
Re: Chrome 0-day exploit used in Operation WizardOpium
#134Earlier quoted context omitted.
Go is not memory-safe in the presence of concurrency. Interfaces and slices (i.e. fat pointers) are not written atomically, which can cause undefined behavior. I haven't heard of this causing a problem in practice, though.
I never heard undefined behavior in Go like your example. This would means that not synchronizing a slice would lead to memory corruption. Please give us a code example.
What's even worse is that Go code is not (outside of Linux/ some distros) compiled with ASLR.
Re: Chrome 0-day exploit used in Operation WizardOpium
#135Earlier quoted context omitted.
No they can't. UaF is impossible in memory safe languages like Go. Concurrency doesn't matter here. Only thing you would get is logical errors resulting in crashes or weird behavior.
Javascript, that the exploit uses, is a memory safe language too, at lest in theory... None of the languages around, that are in major production use, are really completely memory safe in practise. There is always a runtime lurking under it, most times a libc (not in Go tho, IIRC) and assortment of various libraries written in memory unsafe languages and always a kernel. While it's probably harder to exploit Go, as,…
The problem with protecting a C++ codebase like a JS renderer is that the attacker has HUGE amounts of control. They can literally already execute arbitrary code in the renderer, making information leaks and other techniques much easier. ASLR was never intended to protect against an attacker with such a level of control.
Re: Chrome 0-day exploit used in Operation WizardOpium
#136Earlier quoted context omitted.
Go is not memory-safe in the presence of concurrency. Interfaces and slices (i.e. fat pointers) are not written atomically, which can cause undefined behavior. I haven't heard of this causing a problem in practice, though.
I never heard undefined behavior in Go like your example. This would means that not synchronizing a slice would lead to memory corruption. Please give us a code example.
Re: Chrome 0-day exploit used in Operation WizardOpium
#137Re: Chrome 0-day exploit used in Operation WizardOpium
#138Re: Chrome 0-day exploit used in Operation WizardOpium
#139The attack code wasn't in an advert, suggesting the Korean news organisation had either previously been attacked, or had an insider plant this code.
This attack was done by North Koreans. The site is a North Korean propaganda advertising site, which is visited a lot by South Korean researchers.
Re: Chrome 0-day exploit used in Operation WizardOpium
#140I wonder if this exploit would be possible if Chrome was packaged using the UWP Desktop Bridge on Windows 10. I doubt the sandbox prevents UAF, but surely it would have prevented executing an EXE file.
Desktop Bridge applications aren't sandboxed.