This week we look at security updates for the Linux kernel, PHP and NVIDIA drivers, revealing recent research into GPU based side-channel attacks plus we call for suggestions on hardening features and more.
10 unique CVEs addressed
PolicyKit provides ability to authorise an application to perform privileged actions
Pops up dialog for use to authorise via password - PolicyKit then caches that authorisation (5mins)
To identify same process in future, would look at both the PID and process start time to guard against PID reuse etc
However, fork() system call is not atomic, so attacked could call sys_clone() at same time as real process so it has the same start time. Can then cause kernel to block on returning back to the attacker process, effectively racing against the real process waiting for it to end, in the meantime blocking PID allocation until it has cycled around and end up with the same (reused) PID as the original authorised process (and with same start time) - so can effectively fool PolicyKit into impersonating the real process
Fix kernel to make fork() atomic rather than try fix PolicyKit since can’t effectively do this at the process level
Kernel fixed to record process start time later in procedure so is much closer to when the process is visible to userspace and after userspace has a chance to delay it to mitigate this
Jann also discovered that userfaultfd does not properly handle access control for certain ioctl() - which allowed local users to write data into holes in a tmpfs file, even if the user only had read-only access to the file