Re: [PATCH v3] bpf: Set register type according to is_valid_access()
From: Alexei Starovoitov
Date: Mon Sep 26 2016 - 13:58:39 EST
On Mon, Sep 26, 2016 at 04:49:17PM +0200, Daniel Borkmann wrote:
> On 09/24/2016 08:01 PM, Mickaël Salaün wrote:
> >This prevent future potential pointer leaks when an unprivileged eBPF
> >program will read a pointer value from its context. Even if
> >is_valid_access() returns a pointer type, the eBPF verifier replace it
> >with UNKNOWN_VALUE. The register value that contains a kernel address is
> >then allowed to leak. Moreover, this fix allows unprivileged eBPF
> >programs to use functions with (legitimate) pointer arguments.
> >Not an issue currently since reg_type is only set for PTR_TO_PACKET or
> >PTR_TO_PACKET_END in XDP and TC programs that can only be loaded as
> >privileged. For now, the only unprivileged eBPF program allowed is for
> >socket filtering and all the types from its context are UNKNOWN_VALUE.
> >However, this fix is important for future unprivileged eBPF programs
> >which could use pointers in their context.
> >Signed-off-by: Mickaël Salaün <mic@xxxxxxxxxxx>
> >Cc: Alexei Starovoitov <ast@xxxxxxxxxx>
> >Cc: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
> Seems okay to me:
> Acked-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxx>
Mickael, please mention [PATCH net-next] in subject next time.