~/talk

Exploiting Race Conditions Using the Scheduler

Talkat Linux Security Summit Europe 2019 · on Thursday, 2019-10-31· at 09:50· Forum 1· [security, concurrency]
name:Jann Horn
links:none on file
slides:none on file

Exploits two real bugs on a Google Pixel 2 (Linux 4.4): one races mremap against fallocate to produce a use-after-free of a physical page, then reallocates it as a page-cache page for a privileged library and wins code overwrite; another over-decrements struct file refs and uses a FUSE/userfault-style stall plus kcmp-based determinism to reliably reuse freed file structs. Both expand tiny timing windows by manipulating scheduling (pinning tasks, unprivileged sched_ syscalls*) and procfs counters; the techniques are implemented and shown to work.

AI-written summary · about

  1. 0:00Intro
  2. 2:08Translation Lookaside Buffer (TLB)
  3. 2:59mremap() moving a memory mapping
  4. 3:40fallocate() (de)allocate space for a file
  5. 5:20Exploit plan: Basics
  6. 5:56Buddy allocator
  7. 9:09Preemption
  8. 10:12Scheduler control
  9. 12:25Android kernel exploit (app - zygote)
  10. 15:55userfaultfd and FUSE
  11. 17:46komp() for reliable UAF
  12. 20:00FUSE for exploiting struct file refcount
  13. 22:35int getpidcon(pid t pid, char **context)
  14. 24:02Bug 3: race condition in hwservicemanager
  15. 25:18_mutex on kernel 4.4
  16. 26:37Priority Inversion
  17. 27:57Major faults
  18. 29:16Repeated file mapping faults
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.