Received: by 10.223.164.197 with SMTP id h5csp333288wrb; Sat, 4 Nov 2017 12:00:33 -0700 (PDT) X-Google-Smtp-Source: ABhQp+Sg+Wy3xbCI2Pbw1qjKp+f5SjWI8XNXV5P+t0OywBh+NpKX5Tppimx/L0UxMJC4dKrGJWpW X-Received: by 10.84.140.129 with SMTP id 1mr10272368plt.281.1509822033069; Sat, 04 Nov 2017 12:00:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1509822033; cv=none; d=google.com; s=arc-20160816; b=ZbX/5I9kWC3Lm9+cOUkRq6km7MMLYCbwBbQlvvuCFazFAyO7gGfYXcwRCbFG5XmtVk qvJviaCt7BKs0tGE110gJbQjtj62UotkwICOaXj0OGt3Nnir4NIrp04ArAqCTyD9lLIF seh+3a/+If8MOyk+BW9cWy0K8oRJGG3eR1MmY0euC6+bJj12+kb1jj3V31r1Mog+9Cz8 fekdtV9MJcBJyrgPq2LXpg4e377EQ/+sU/qqrT2ZMiy8O+V8iVs6czXHCCwNHagZiTH6 Pf+5jx/96zzqeIqyOn7BGKn7Z4W+gLlg6nT7zX9Y/ZtB7JtMLU/5Sqefr5GinKHn74/t Z74Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=u2wU3roHfm8xB1MejdN7qDEAJNZi8SI444aObTBynVI=; b=I0uZ1kBH9KBk33+0Dyv6+A1EBAI/YVUhhfrXkY/zondevJZULMAfL5UnGMtpNtplBt l3K6wanRub2krsnKrgy8rSAzexfjiwcETlCzHOUFFk0Oqp8GH0WRDU1jd1cqDm8COQum cS3FUyLkWbowWSXnh10YhD5YHqMFa9lP9XHvebjEKaUHEMQ2q1+CGAS+8PZOrBpyv7A6 vylFYOnI+pjzPsdxuq4ILPWBT1s+ourHfwCCnM4D4xLxY1nWXDmWQ+4UTlrOFnDtutoA WOe7o7LwxwE1obQWUU+N1vdcry2ka2IX6dikOvJU99uK33ArdG78N+BVLv8w6pExc8MO m+AQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k69si8539634pgd.749.2017.11.04.12.00.20; Sat, 04 Nov 2017 12:00:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751618AbdKDS7n (ORCPT + 93 others); Sat, 4 Nov 2017 14:59:43 -0400 Received: from mx2.suse.de ([195.135.220.15]:58479 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750709AbdKDS7m (ORCPT ); Sat, 4 Nov 2017 14:59:42 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 8B7E9ABB1; Sat, 4 Nov 2017 18:59:40 +0000 (UTC) From: Aleksa Sarai To: "James E.J. Bottomley" , "Martin K. Petersen" Cc: linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, containers@lists.linux-foundation.org, Valentin Rothberg , cyphar@cyphar.com, Aleksa Sarai , stable@vger.kernel.org, "Eric W. Biederman" Subject: [PATCH] scsi: require CAP_SYS_ADMIN to write to procfs interface Date: Sun, 5 Nov 2017 05:59:13 +1100 Message-Id: <20171104185913.10658-1-asarai@suse.de> X-Mailer: git-send-email 2.14.3 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Previously, the only capability effectively required to operate on the /proc/scsi interface was CAP_DAC_OVERRIDE (or for some other files, having an fsuid of GLOBAL_ROOT_UID was enough). This means that semi-privileged processes could interfere with core components of a system (such as causing a DoS by removing the underlying SCSI device of the host's / mount). Cc: Cc: "Eric W. Biederman" Signed-off-by: Aleksa Sarai --- drivers/scsi/scsi_proc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/scsi_proc.c b/drivers/scsi/scsi_proc.c index 480a597b3877..486aedce2f05 100644 --- a/drivers/scsi/scsi_proc.c +++ b/drivers/scsi/scsi_proc.c @@ -51,7 +51,10 @@ static ssize_t proc_scsi_host_write(struct file *file, const char __user *buf, struct Scsi_Host *shost = PDE_DATA(file_inode(file)); ssize_t ret = -ENOMEM; char *page; - + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM + if (count > PROC_BLOCK_SIZE) return -EOVERFLOW; @@ -313,6 +316,9 @@ static ssize_t proc_scsi_write(struct file *file, const char __user *buf, char *buffer, *p; int err; + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + if (!buf || length > PAGE_SIZE) return -EINVAL; -- 2.14.3 From 1583134575111234285@xxx Sat Nov 04 11:26:23 +0000 2017 X-GM-THRID: 1583084126786359322 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread