From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Lutomirski Subject: Re: [PATCH RFC v4 net-next 17/26] tracing: allow eBPF programs to be attached to events Date: Fri, 15 Aug 2014 12:32:41 -0700 Message-ID: References: <1407916658-8731-1-git-send-email-ast@plumgrid.com> <1407916658-8731-18-git-send-email-ast@plumgrid.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: "David S. Miller" , Ingo Molnar , Linus Torvalds , Steven Rostedt , Daniel Borkmann , Chema Gonzalez , Eric Dumazet , Peter Zijlstra , "H. Peter Anvin" , Andrew Morton , Kees Cook , Linux API , Network Development , "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" To: Alexei Starovoitov Return-path: In-Reply-To: Sender: linux-api-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: netdev.vger.kernel.org On Fri, Aug 15, 2014 at 12:29 PM, Alexei Starovoitov wrote: > On Fri, Aug 15, 2014 at 12:20 PM, Andy Lutomirski wrote: >>>> >>>> I don't think that fixing this should be a prerequisite for merging, >>>> since the risk is so small. Nonetheless, it would be nice. (This >>>> family of attacks has lead to several root vulnerabilities in the >>>> past.) >>> >>> Ok. I think keeping a track of pid between open and write is kinda >>> ugly. >> >> Agreed. >> >> TBH, I would just add a comment to the open implementation saying >> that, if unprivileged or less privileged open is allowed, then this >> needs to be fixed. > > ok. will do. > >>> Should we add some new CAP flag and check it for all file >>> ops? Another option is to conditionally make open() of tracing >>> files as cloexec... >> >> That won't help. The same attack can be done with SCM_RIGHTS, and >> cloexec can be cleared. > > ouch, can we then make ebpf FDs and may be debugfs FDs > not passable at all? Otherwise it feels that generality and > flexibility of FDs is becoming a burden. I'm not sure there's much of a general problem. The issue is when there's an fd for which write(2) (or other assumed-to-not-check-permissions calls like read, pread, pwrite, etc) depend on context. This is historically an issue for netlink and various /proc files. --Andy