Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3146873pxj; Mon, 14 Jun 2021 15:54:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxJveqXW4L0QnaWkWi7+kSo/JI2FXDl2/T7ceuDpEkcT6Sdu/naPLapd9MaR6BgwJsMbB1a X-Received: by 2002:a17:906:4697:: with SMTP id a23mr17549124ejr.305.1623711254451; Mon, 14 Jun 2021 15:54:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623711254; cv=none; d=google.com; s=arc-20160816; b=R+UdxstSlNlR8oXowkVNHgyOjmR3qIuh1uc6JYSLIXy1nmPwY9vvjyFn2I81ppMGGa nfFPBe0/Heio9ciAO3DPaGJCH5uMUIjSNLpUuM0veTybLgid1iF7HrPmzW16Azi6InK3 x7ihY0j/NGTCWxlRMcs13f6JTmNHIu94TE+2L4JifM2KGO8BnZln/imcapS6AEaecfMP UaX/Brx1YNoT39kLFafsOG70hL1eoLdGSFgIX/+ezLTwTahSYLNGP8gu4Uy1ZO5spmJK bc2TQrQJ9p2v8BU9lXg3CrFmRIFtLtndV+6J/F8lklC1eZYQed2pGUWKXjZQxG3ZvppE etYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=aciRkOzayHTWrTzSJKmVf13JrZoWxtea1Rx5Gqhhjmg=; b=yHe9H7V8ZXJcYrjjqKtRRM+1Ju3RepROuFmLjOh7FqOAUfeME/Ud/lEOPj5fCT1FpM kS5HQNtr4AWfzKdfABemmlKgQjL3x7pohhQXhQB2FuhTS/2i17m6KjqWLaifMquxRmYG p3+E7lPWLiqAEd3FvZDXizQ9+mZL989uhrbi5FqiggvIEA/Wc4tAQmn46Sfu8iA/KVyJ eBkuf73a+9vmdSnRJpDTZzLIPbetbjQkpeMOjByAlOFbkCeZ+3qkE2mGdrCEbS2q2Qaq WpyXrMp2/0IggVdUoilnQ1h59N4HmWAVfJVinVQ9hYqGIg3S/a0DvvQdXE1yrSJg9akF sTQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=nIwp+FZx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id by19si11777623ejc.380.2021.06.14.15.53.41; Mon, 14 Jun 2021 15:54:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=nIwp+FZx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229939AbhFNWxK (ORCPT + 99 others); Mon, 14 Jun 2021 18:53:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53708 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229781AbhFNWxJ (ORCPT ); Mon, 14 Jun 2021 18:53:09 -0400 Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C6D29C0617AF for ; Mon, 14 Jun 2021 15:50:52 -0700 (PDT) Received: by mail-pj1-x102d.google.com with SMTP id z3-20020a17090a3983b029016bc232e40bso1001870pjb.4 for ; Mon, 14 Jun 2021 15:50:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=aciRkOzayHTWrTzSJKmVf13JrZoWxtea1Rx5Gqhhjmg=; b=nIwp+FZxbhehtXuzhGjb6YSm7hYtx2sK8E76UiJ5RWfCYIPYLLGpUB7odZ3pY6zsSv MgZhR/qK5xP1/GaERZvUSbyzt9nXy1Z26iJ6XYs/rswA09QvHCRH1Zm3w8c7Iiwk1CQV qLnd5kMTVtgJ7vCLk1aVpVW8+o/q0Sae0xiY0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=aciRkOzayHTWrTzSJKmVf13JrZoWxtea1Rx5Gqhhjmg=; b=m0gF+5gN34EW/8QMX8DP+2oxgqk+zF+BZDnGJzBYMn+8ayMKN+yS1R4vgGSnD9TCl5 yuWB8L+FETdxgOa6i9RwP79hqp9lrrJ205o0KoEoNJJ6E8pXq2SWto3f7V3Ve3Fwna1Q 40n5tgwqFjaKMnZRJxHD+6E0bYrxnJ6LQeRqDTb1XtIenoH/fkYM347TSFKR2KAR5TBU SHPSVntVsVn/HiYeKxv0npF47FJ7RoawooHD/7UMOx3NG9+SOT3LlPUyyv6QrY1iKScM xeYIwfmRyylI/3l8DcEsQWvPKnEv8zVu9mVDnMXWQsZfXNaHN5Z4noVmN2aheUt6MilL yYMA== X-Gm-Message-State: AOAM53270j8O5uHeaqtuti8+zi1qQ8/RP5sb3+4OU3F9DhYXhu6K5AiL zQ3AGia8KR4o2ou5IQglNdT+4w== X-Received: by 2002:a17:902:c651:b029:118:896f:cead with SMTP id s17-20020a170902c651b0290118896fceadmr1287574pls.29.1623711052271; Mon, 14 Jun 2021 15:50:52 -0700 (PDT) Received: from www.outflux.net (smtp.outflux.net. [198.145.64.163]) by smtp.gmail.com with ESMTPSA id d8sm13816594pfq.198.2021.06.14.15.50.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Jun 2021 15:50:51 -0700 (PDT) Date: Mon, 14 Jun 2021 15:50:50 -0700 From: Kees Cook To: youling 257 Cc: torvalds@linux-foundation.org, christian.brauner@ubuntu.com, andrea.righi@canonical.com, linux-kernel@vger.kernel.org, stable@vger.kernel.org, regressions@lists.linux.dev, linux-security-module@vger.kernel.org, Paul Moore , Stephen Smalley , SElinux list Subject: Re: [PATCH] proc: Track /proc/$pid/attr/ opener mm_struct Message-ID: <202106141503.B3144DFE@keescook> References: <20210608171221.276899-1-keescook@chromium.org> <20210614100234.12077-1-youling257@gmail.com> <202106140826.7912F27CD@keescook> <202106140941.7CE5AE64@keescook> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 15, 2021 at 02:46:19AM +0800, youling 257 wrote: > I test this patch cause "init: cannot setexeccon(u:r:ueventd:s0) > operation not permitted. > init ctrl_write_limited. Thanks for testing! This appears to come from here: https://github.com/aosp-mirror/platform_system_core/blob/master/init/service.cpp#L242 In setexeccon(), I see (pid=0, attr="exec"): fd = openattr(pid, attr, O_RDWR | O_CLOEXEC); ... ret = write(fd, context2, strlen(context2) + 1); ... close(fd); and openattr() is doing: ... rc = asprintf(&path, "/proc/thread-self/attr/%s", attr); if (rc < 0) return -1; fd = open(path, flags | O_CLOEXEC); ... I'm not sure how the above could fail. (mm_access() always allows introspection...) The only way I can understand the check failing is if a process did: open, exec, write But setexeccon() is not doing anything between the open and the write... I will keep looking... -Kees -- Kees Cook