Conversation

CVE-2019-6208 (Jann Horn of Google Project Zero) may be described in the pictures. I didn't find this by binary diff, I find this by bug collision :-( :-( :-(
Image
Image
2
37
Replying to
Oh, then that’s my mistake. This uninitialized stack memory bug was fixed in 10.14.3, and the only CVE describing kernel memory leak is your CVE, that’s why I thought my bug conflicted with yours.
2
Replying to and
I don't know the accurate answer. Maybe some do that(e.g. -finit-local-zero under some gcc) while others don't. On the other side, C standard says the local variable has an uninitialized value, you should zero it by yourself.
2
Clang implementation is intended to be production quality along with having useful features for debugging (not just zero bytes for hardening) but they don't want it to be a way to get well-defined semantics for uninitialized variables as a new language dialect. It's still a bug.
1
1
C compilers don't have an option for that, since code wasn't written for strict init before use semantics. Their uninitialized variable warnings are very conservative to avoid false positives. `int x; foo(&x);` won't warn even though it's local analysis and can't know it's safe.
1
It would certainly be possible for them to add an option for a dialect with strict initialization before usage. It's one tiny problem among many larger ones though, and trying to go down the path of making a safe dialect leads to something much worse than a modern safe language.
1
Show replies