Skip to main content

@rysiek i'm sure you recall copy dot fail. i have written what i consider low-level i/o code for years, and that vuln was the first time i had ever heard about the linux page cache. it's not well-known (because the POSIX spec actively obfuscates it), but one of the very few hard requirements that POSIX demands is the immediate global visibility of any write() call (along with an "atomic" ordering which is literally not specified). POSIX describes this in terms of torn writes (which is a userspace i/o semantic), but it then imposes this global (cross-process!!!!) mutable data store in the kernel. this is completely fucked.

85 Replies
·
0 Boosts