From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C205E77188 for ; Wed, 8 Jan 2025 22:49:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F0E546B0089; Wed, 8 Jan 2025 17:49:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E97186B008A; Wed, 8 Jan 2025 17:49:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D5EFF6B008C; Wed, 8 Jan 2025 17:49:20 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id B846F6B0089 for ; Wed, 8 Jan 2025 17:49:20 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 5AB16C1405 for ; Wed, 8 Jan 2025 22:49:20 +0000 (UTC) X-FDA: 82985777280.16.E557003 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf27.hostedemail.com (Postfix) with ESMTP id A626040008 for ; Wed, 8 Jan 2025 22:49:18 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=UTBAJcaO; spf=pass (imf27.hostedemail.com: domain of kees@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=kees@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736376558; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Co1u6n/iDgnRkAoebUiWcFXxasejw4PGyFTDb28dslo=; b=HMBMKXJV/WtJfKtdDbcGSP+QJJBVk6tM1OUAjcJJzZBni7NUJTf04ofiqly8RLWc0HKQjg lO3z5zbuXy1XCmg4Ln32FdOTLEIlIt7xEeUfByrK5GqNiwMWmMNZHFHh9p20x1PEl45FyZ mLFfEnu3xs5hBLpRP8c+R9Pizy6FGJg= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=UTBAJcaO; spf=pass (imf27.hostedemail.com: domain of kees@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=kees@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736376558; a=rsa-sha256; cv=none; b=sYFHatKigTVFfDB0vuE6ibrEEgTJBrIBKOriOOK2vmbI5Csa/EgUWRFGvw4Fuo7RCFwl5A f0ohXDOzTSqU6K+aqBCQv92qR71We6ZJIeIM1yRzeNNQNZrSD/vwnLFw41YWedkgPF0K+J bnevppCCM1SnOa8OCZ/UN1J4XrFxF9Y= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id A48205C274E; Wed, 8 Jan 2025 22:48:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5CD61C4CED3; Wed, 8 Jan 2025 22:49:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1736376557; bh=JtlegMtrYXynM9nQlMgM7w4yvF7zQXRu3KOrxEAb3eo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=UTBAJcaOVwI0YXSwLMBA3XjmeqBXseFwWMGSBik1I7JsENkWmYaNIlAgCtM5RaQjJ 4w/Oe9VbBTNjVXSnyJre2QH4Z7JRHWGjYWhfT0RF7yZoVl869J7RK0ekhtP+tkd96I JvhhMgiJT2IO1MfOHRg8LEgzXhbBGYsNF7QjgMjKd2v5YWL1EjdfwjSgqtjZgMyCgs gAa5DTaFAcDAvi/ZtiYj2KjUkTei3wxtBtPoBASwmJ2VKj8Mq3gFuIAKZNOo8FVwfK RRrLg4Sfoz1W1Hf+3KWHjNzqXVBB8CWhnFmc0b27HQYJPxYj+KTY1KPwcU/LH1DsnG 37ufhMPGbU5Iw== Date: Wed, 8 Jan 2025 14:49:14 -0800 From: Kees Cook To: John Paul Adrian Glaubitz Cc: Richard Henderson , Matt Turner , Jeff Xu , Eric Biederman , Arnd Bergmann , "Paul E. McKenney" , linux-alpha@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Michael Cree , Sam James , "Maciej W . Rozycki" , Geert Uytterhoeven , Michael Karcher , Chris Hofstaedtler , util-linux@vger.kernel.org Subject: Re: [PATCH] alpha: Fix personality flag propagation across an exec Message-ID: <202501081442.AB725C7D0@keescook> References: <20250103140148.370368-1-glaubitz@physik.fu-berlin.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250103140148.370368-1-glaubitz@physik.fu-berlin.de> X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: A626040008 X-Rspam-User: X-Stat-Signature: wg7x5fnwcsbwx4m1pcs3oebjpnc8ppht X-HE-Tag: 1736376558-993111 X-HE-Meta: U2FsdGVkX18EVNWvXYw/Uc1mo1A7nNUhw9M1tLtms85YdujCTJgTOI75me8BPWjaCJmTxOt5Ir2cFIskacwwZ1O+Lr/FeANdQOF6ZZir7qfOj6cNojr51kCwARBAwGgwDN8AMs6gsZ2xMpBNmXuUpIMOPCVbga8QnN8WuU+jM15kOfRDhcn6nAzQWibgsnK16tm/s+BoDMpJb752ZQkkDF9Y68avNf5Lwg0G7tEv8Hg2eLqbQ6+fQczIyJSVWa9cSG07y/z5fJhbObVufnjWFagw2KQEafXYKz+PQll20401/jozTTfNI8PPiNqvPNKs8rCfx7Bm8EYisVsaceK5+vzcJpA4xGXN/jaoEXbLtX1ICFvEfkHMK3J/+SyA6g21R6WcoEXXwXa+g6wYsjbSwecXNYiqZ4DfJlC2YHaeIV/RQnGPjYFkPkDI1d1r0yaFJEJ9pz7ZMz9NJDjUww19+nyZ6ng+jeha3RkDJlB+7bNv1TO7aUtYSOFBOmTe6ELSivW5Ywd2Acj1dGRsAfdfu1zcLtuV7sO0xjWTqCbKHgwQFigflhwx+yMLLUdFupSQDoUa2AYo/gKbw+wg+H7mC9hHIp30sQM9cGzoXNUy2QFtY/Cev9BeFaK/JNoryuhKTyThmHM/a7T+3b9msSzsCYHLaFh47fxrv8DUA0X2VfEbc5qXEKcW4YIFLZjAM+wz2At4suF24xcXNwdecfm+/xFkbMoVNlwEbbDIJKed3Huf9YFi6R01txasvT18STIdaEAPt70zvNUZ0Lwaiuw983SjK9UVqfl/Un1UgiH95Tnw5D/jfrRk5/VflYScJfUnXXAX635pXcRFLm8qfHAwYj9ua3iCgrJejfOndog8Xc4Sh8LbNZE1a+I7n+QLCwbOPsOcbemKDfxC0RkO0F+SlAGBe8rM4I1HAUQR0YxRpmtIMAi8aZOv3uxXOWlxaW5ggfSZB7M2d2kmBYyWk0a IJKqMgR+ 0PbSQdZpH7r9K9a1X3ydV672qmVVXUeLRTGM67C0LF+drCKR3+73LBipxkaG7EvlekDBUkTU6MtzbwxGcz5FojqFkR0WcTr7kyoYSXP6xFH1ihQ2GteU6Yi/OC4WfLHHl+FYksJvjBMTSBn7T3c945G4Dd7vqAv3RXqyp70ZU8qWLK29aT2WGAvpd9OYf0SNFPrmiUL/s9ntTsUBd82chJ3wqK5dCUdrLHNeP0W8tsa1so6CFroTOdwu+qV+LzY682g15ODBB+ww6uhbSyXIkJ/cVJg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, Jan 03, 2025 at 03:01:46PM +0100, John Paul Adrian Glaubitz wrote: > It was observed that on alpha, the misc/setarch test of > the util-linux testsuite failed with the following error: > > misc: setarch ... > : options ... OK > : uname26 ... OK > : uname26-version ... FAILED (misc/setarch-uname26-version) > : show ... OK > ... FAILED (1 from 4 sub-tests) > > Running the setarch binary manually confirmed that setting > the kernel version with the help --uname-2.6 flag does not > work and the version remains unchanged. > > It turned out that on alpha, the personality flags are not > propagated but overridden during an exec. The same issue was > previously fixed on arm in commit 5e143436d044 ("ARM: 6878/1: > fix personality flag propagation across an exec") and on powerpc > in commit a91a03ee31a5 ("powerpc: Keep 3 high personality bytes > across exec"). This patch fixes the issue on alpha. Good catch! > > With the patch applied, the misc/setarch test succeeds on > alpha as expected: > > misc: setarch ... > : options ... OK > : uname26 ... OK > : uname26-version ... OK > : show ... OK > ... OK (all 4 sub-tests PASSED) > > However, as a side-effect, a warning is printed on the kernel > message buffer which might indicate another unreleated bug: > > [ 39.964823] pid=509, couldn't seal address 0, ret=-12. This is from mseal vs MMAP_PAGE_ZERO in fs/binfmt_elf.c error = vm_mmap(NULL, 0, PAGE_SIZE, PROT_READ | PROT_EXEC, MAP_FIXED | MAP_PRIVATE, 0); retval = do_mseal(0, PAGE_SIZE, 0); if (retval) pr_warn_ratelimited("pid=%d, couldn't seal address 0, ret=%d.\n", task_pid_nr(current), retval); -12 is ENOMEM, which implies, I think, that check_mm_seal() failed. I note that "error" isn't being checked, so if the vm_mmap() failed, I think the do_mseal() would fail with ENOMEM? > Signed-off-by: John Paul Adrian Glaubitz Reviewed-by: Kees Cook -Kees > --- > arch/alpha/include/asm/elf.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/alpha/include/asm/elf.h b/arch/alpha/include/asm/elf.h > index 4d7c46f50382..81f8473bb7c0 100644 > --- a/arch/alpha/include/asm/elf.h > +++ b/arch/alpha/include/asm/elf.h > @@ -138,8 +138,8 @@ extern int dump_elf_task(elf_greg_t *dest, struct task_struct *task); > }) > > #define SET_PERSONALITY(EX) \ > - set_personality(((EX).e_flags & EF_ALPHA_32BIT) \ > - ? PER_LINUX_32BIT : PER_LINUX) > + set_personality((((EX).e_flags & EF_ALPHA_32BIT) \ > + ? PER_LINUX_32BIT : PER_LINUX) | (current->personality & (~PER_MASK))) > > extern int alpha_l1i_cacheshape; > extern int alpha_l1d_cacheshape; > -- > 2.39.5 > -- Kees Cook