Thread (76 messages) 76 messages, 9 authors, 2016-10-19

Re: [RFC v3 04/22] bpf: Set register type according to is_valid_access()

From: Thomas Graf <tgraf@suug.ch>
Date: 2016-10-19 14:54:50
Also in: cgroups, linux-api, lkml

On 09/14/16 at 09:23am, Mickaël Salaün wrote:
This fix a pointer leak when an unprivileged eBPF program read a pointer
value from the context. Even if is_valid_access() returns a pointer
type, the eBPF verifier replace it with UNKNOWN_VALUE. The register
value containing an address is then allowed to leak. Moreover, this
prevented unprivileged eBPF programs to use functions with (legitimate)
pointer arguments.

This bug was not a problem until now because the only unprivileged eBPF
program allowed is of type BPF_PROG_TYPE_SOCKET_FILTER and all the types
from its context are UNKNOWN_VALUE.

Signed-off-by: Mickaël Salaün <mic@digikod.net>
Fixes: 969bf05eb3ce ("bpf: direct packet access")
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Can you post this fix separately? It's valid and needed outside of the
scope of this series.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help