Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967018AbbDXQLL (ORCPT ); Fri, 24 Apr 2015 12:11:11 -0400 Received: from mail-lb0-f179.google.com ([209.85.217.179]:33808 "EHLO mail-lb0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933672AbbDXQLH (ORCPT ); Fri, 24 Apr 2015 12:11:07 -0400 MIME-Version: 1.0 In-Reply-To: References: From: Andy Lutomirski Date: Fri, 24 Apr 2015 09:10:45 -0700 Message-ID: Subject: Re: Regression: Requiring CAP_SYS_ADMIN for /proc//pagemap causes application-level breakage To: Linus Torvalds Cc: Mark Williamson , Linux Kernel Mailing List , "Kirill A. Shutemov" , Pavel Emelyanov , Konstantin Khlebnikov , Andrew Morton , Mark Seaborn , Linux API , Finn Grimwood , Daniel James Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1809 Lines: 36 On Fri, Apr 24, 2015 at 9:08 AM, Linus Torvalds wrote: > On Fri, Apr 24, 2015 at 7:55 AM, Mark Williamson > wrote: >> >> Although I've marked this as a "Regression", we do realise there are >> legitimate security concerns over the original implementation of this >> interface. Still, given the kernel's strong stance on preserving userspace >> interfaces, we thought we ought to flag this quickly as something that has >> changed application-relevant behaviour. > > So the one exception to the regression rule is "security fixes", but > even for security fixes we do try to be as reasonable as humanly > possible to make them not break things. > > Now, as you mentioned, one option is to not outright disallow accesses > to the /proc/PID/pagemap, but to at least hide the page frame numbers. > However, I don't believe that we have a good enough scrambling model > to make that reasonable. Remember: any attacker will be able to see > our scrambling code, so it would need to be both cryptographically > secure *and* use a truly random per-VM secret key. Quite frankly, > that's a _lot_ of effort for dubious gain... Even though I've been accused (correctly?) of suggesting that, I'm not sure I like it anymore. Suppose I map some anonymous memory, learn its (scrambled) pfn, then unmap it and remap a setuid file. Now I can tell whether I've mapped the setuid file at the same pfn that was mapped as my anonymous memory. IIRC that's sufficient for one of the variants of Mark's attack. --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/