Thread (54 messages) 54 messages, 9 authors, 2018-12-07

Re: [PATCH 0/2] Don’t leave executable TLB entries to freed pages

From: Nadav Amit <hidden>
Date: 2018-11-28 01:06:14
Also in: linux-mm, lkml

On Nov 27, 2018, at 4:07 PM, Rick Edgecombe [off-list ref] wrote:

Sometimes when memory is freed via the module subsystem, an executable
permissioned TLB entry can remain to a freed page. If the page is re-used to
back an address that will receive data from userspace, it can result in user
data being mapped as executable in the kernel. The root of this behavior is
vfree lazily flushing the TLB, but not lazily freeing the underlying pages. 

There are sort of three categories of this which show up across modules, bpf,
kprobes and ftrace:

1. When executable memory is touched and then immediatly freed

  This shows up in a couple error conditions in the module loader and BPF JIT
  compiler.
Interesting!

Note that this may cause conflict with "x86: avoid W^X being broken during
modules loading”, which I recently submitted.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help