News for hackers. Stuff that matters.
Re:The Insecurity Industry by novok on Monday July 26, 2021 @08:13PM (#27967134)
Can you do a security exploit with a concurrency bug although in golang? You may corrupt data, but can you cause remote code execution with it?
Re:The Insecurity Industry by staticassertion on Tuesday July 27, 2021 @02:19AM (#27969231)
To be clear, yes. The issue is with how Go's "interface{}"s (and some other types - like slices, etc) work - it's two pointers that can't be written to atomically, which means you can get into a situation where your objects are invalid.

https://blog.stalkr.net/2015/04/golang-data-races-to-break-m...

Here you can find a POC.

You could argue that this is contrived, but it's also not going to be fixed. This is in contrast to Rust, where there may be implementation flaws leading to unsafety in safe code, but the language retains the right to fix those, even if it breaks code.

Still, I think there's really no question that Go is a major step up over C and C++.

Re:The Insecurity Industry by kortilla on Monday July 26, 2021 @08:25PM (#27967201)
RCE in that process maybe not, but security exploit absolutely. Things like that are how can be the difference between admin and non admin privileges or an “authenticated/not-authenticated” scenario.
Re:The Insecurity Industry by yellow_lead on Monday July 26, 2021 @09:06PM (#27967470)
Yes, not all RCEs are caused by memory bugs.
Re:The Insecurity Industry by staunch on Monday July 26, 2021 @10:22PM (#27967915)
Can you point to some examples of RCEs caused by Go concurrency bugs?
Re:The Insecurity Industry by yellow_lead on Tuesday July 27, 2021 @01:58AM (#27969100)
I don't have a real world example. I was just stating it's possible.
Re:The Insecurity Industry by mattgreenrocks on Monday July 26, 2021 @08:29PM (#27967228)
Corrupt data may break invariants, which widen the attack surface.