Received: by 2002:ab2:6203:0:b0:1f5:f2ab:c469 with SMTP id o3csp2625664lqt; Mon, 22 Apr 2024 17:15:36 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCX4gQf1nMtt/P58RdEVkbzGzR2MRG3+YTKaqYZ/Jqb7r1nw+tq8drrryXIcO+6i/QrTd/JCEXm5mKck0OKSKQwTX2XcsF/KGOE8QFTT1g== X-Google-Smtp-Source: AGHT+IF9XxYRhfceRGcb3X9rNwVkRvgGu3fkUyv1x8z+f0s6ilnKazZHjll/rx7e4vGZr8opynLj X-Received: by 2002:a05:6870:4590:b0:233:f867:73a0 with SMTP id y16-20020a056870459000b00233f86773a0mr14885346oao.22.1713831336008; Mon, 22 Apr 2024 17:15:36 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1713831335; cv=pass; d=google.com; s=arc-20160816; b=RCTe7mEGPz0Se7enhJSPmYHWHDSPDia5k7/r5GEREzXLPFkTehFxEQMb6NtMXpkRKF x3iNFkplsWnk2vdXPaYV7fzA+Uli4b7t0zbi9hBQOn8hO6Ww0R5W9Z2Ln3k4srqJhVtC uNxH5OdKdh8M4hOPrRpb2yvSyFpfUlCuUxILia8A3Y5lAeyaLPxwEbkBKZlqzS4FqhDp 3oDo5YTuUsvxbvR0xBPIfaYF8zsLObEJsXgu212yPlNOtg8cPpz/PrWP5E5ZJyRwAVXz jABWMg52+9+BK6MFHEwUA6x5ilRfER88yrKWrT6tbeCzf6oY65zLeyAjub5JuFFgpADe NM8Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=sUOHHQPUwxYfCJFm0mS7Z9knZKuifTSA7BpNGzEvxk4=; fh=8FXj8WORQxIIVHcjcrrVWwSx5y2GS+9fK5Xwar47PDo=; b=HyFOXKJw0A70useYI/Mbx7ybCn5D66xNVWYgFJxQb2LWt7M7aLt8LQBvPQfB4wzldi eUdTd4WV490uw3BggCXJsCIR8Acw+g5zDX+QlH4ZZfgNRW7E7KNQU6r0noVNkVsgziZ4 zMZA4lRV2gDN5XvZj/iqAnbO5AfE+NFYHg4mw3lR88VA/9maG4opFMGOWGufzUT+zlj9 E2ezdGN5/Csy8sdTPmnjfUsVhCRgSCuMUATKV5YFz4MzjwgFMWB+8aIP38a5Vb0/+Yha efHp+CGzOXFQS7ZWIq276Sy+YQfCAjMSYTJGpYvNUs1O0GlcYnZWfDA8F6CI7kENPRzV 9C8Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=RFcajkNP; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-154299-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-154299-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id p26-20020a63951a000000b005f3c2015329si6600032pgd.374.2024.04.22.17.15.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Apr 2024 17:15:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-154299-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=RFcajkNP; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-154299-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-154299-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 35E9D2864A6 for ; Tue, 23 Apr 2024 00:12:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3E34217BB33; Mon, 22 Apr 2024 23:57:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RFcajkNP" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5AD5D158207; Mon, 22 Apr 2024 23:57:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713830262; cv=none; b=A8Stf7hqydcMTVayndKglyeJn0wH9uHpn82XUldWcVPOU2wxuQ3BB9+aqCxwSE5IeCazeZbvu/CbTUfagVe3031UG1dbylXPm/i0P6/LQM5g2qj24LC7YTLJkYkuoLWGcQkFJn7PDNhEFLKg4X4Q363jOCrqF3uJnqI9Zag0ky4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713830262; c=relaxed/simple; bh=Kj5+5mu6KGm/RuohPLj9U4V4Obrtte3DSQ1mPnyYH3o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qa2gi0beO6zxIonktHt/exvQouVAABuJPBrZFWjUDHX1pKo+MmIL4swai3adFouWD/hEsX63bOsBy2SdvRIolMIpajHWCEiuqhbbg+xe+X8qpZUMBjvC37uWoZ5bfz49lN1QdNEQvXmSLDlRboXtcc6Rav5ALroDiAOrS4mAytU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RFcajkNP; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 02184C2BD11; Mon, 22 Apr 2024 23:57:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713830261; bh=Kj5+5mu6KGm/RuohPLj9U4V4Obrtte3DSQ1mPnyYH3o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RFcajkNPIp8cfZYWn9Rw5bgqmtjSu2rRJyfmPBriJ7AvB+imNRdHclcyK9ym7ULA3 JaX/cU5BLy8cYq/OECYP75iuqR7pHI+F+ON2GM50jtOQNG9NlaQ8QtCySZo2+T2wlh tVAFB8eTMCMBbpyrBRyz7k3zeiRhvor2TfhQO53dfp8ZKmP93aB0RIgjFGKpT7bUeX xqgXpvP7sfTrZPXYFFSc39sPEawgzbm+N2WmnX4oVehvVZrXJpUSvICvqb6lQE+OIo OhPfuvC5iIst5AbpsSAwNAQxSdorYyz+hxtwcRrgiu8BIdrzNlx8jhhLCTdDcScjqV /zllP2j/jib1Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Maurizio Lombardi , Mike Christie , "Martin K . Petersen" , Sasha Levin , linux-scsi@vger.kernel.org, target-devel@vger.kernel.org Subject: [PATCH AUTOSEL 6.1 09/19] scsi: target: Fix SELinux error when systemd-modules loads the target module Date: Mon, 22 Apr 2024 19:18:23 -0400 Message-ID: <20240422231845.1607921-9-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240422231845.1607921-1-sashal@kernel.org> References: <20240422231845.1607921-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.1.87 Content-Transfer-Encoding: 8bit From: Maurizio Lombardi [ Upstream commit 97a54ef596c3fd24ec2b227ba8aaf2cf5415e779 ] If the systemd-modules service loads the target module, the credentials of that userspace process will be used to validate the access to the target db directory. SELinux will prevent it, reporting an error like the following: kernel: audit: type=1400 audit(1676301082.205:4): avc: denied { read } for pid=1020 comm="systemd-modules" name="target" dev="dm-3" ino=4657583 scontext=system_u:system_r:systemd_modules_load_t:s0 tcontext=system_u:object_r:targetd_etc_rw_t:s0 tclass=dir permissive=0 Fix the error by using the kernel credentials to access the db directory Signed-off-by: Maurizio Lombardi Link: https://lore.kernel.org/r/20240215143944.847184-2-mlombard@redhat.com Reviewed-by: Mike Christie Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/target/target_core_configfs.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/target/target_core_configfs.c b/drivers/target/target_core_configfs.c index 416514c5c7acd..1a26dd0d56662 100644 --- a/drivers/target/target_core_configfs.c +++ b/drivers/target/target_core_configfs.c @@ -3587,6 +3587,8 @@ static int __init target_core_init_configfs(void) { struct configfs_subsystem *subsys = &target_core_fabrics; struct t10_alua_lu_gp *lu_gp; + struct cred *kern_cred; + const struct cred *old_cred; int ret; pr_debug("TARGET_CORE[0]: Loading Generic Kernel Storage" @@ -3663,11 +3665,21 @@ static int __init target_core_init_configfs(void) if (ret < 0) goto out; + /* We use the kernel credentials to access the target directory */ + kern_cred = prepare_kernel_cred(&init_task); + if (!kern_cred) { + ret = -ENOMEM; + goto out; + } + old_cred = override_creds(kern_cred); target_init_dbroot(); + revert_creds(old_cred); + put_cred(kern_cred); return 0; out: + target_xcopy_release_pt(); configfs_unregister_subsystem(subsys); core_dev_release_virtual_lun0(); rd_module_exit(); -- 2.43.0