From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id kBy5Ov4WOGR2vSoAWB0awg (envelope-from ) for ; Thu, 13 Apr 2023 10:51:42 -0400 Received: by simark.ca (Postfix, from userid 112) id EBD701E221; Thu, 13 Apr 2023 10:51:42 -0400 (EDT) Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=d2CkTC2X; dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,NICE_REPLY_A, RCVD_IN_DNSWL_MED,RDNS_DYNAMIC,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 60E0C1E110 for ; Thu, 13 Apr 2023 10:51:42 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E514F3858C66 for ; Thu, 13 Apr 2023 14:51:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E514F3858C66 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1681397501; bh=ixH8rLa7X99NaLUBK5/tsizuLapYXW20HGuIXFhC3/I=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=d2CkTC2XFLoeUa0ef+NmEU9cd+O3X+8O2ygUg7+W4mhRdZy1fhyNzFVxzPRzIezAV oXbZXmws5eDCxTPnud3NpuU1w9RcbWWaXwG9ASKfQjKyKzC1bn6gEJ/PKBlgQgJY/r 4U/Nw6KAYqh9D3btIGz0FDh/UFYZsLeQOEotMCbw= Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 2900E3858D20; Thu, 13 Apr 2023 14:50:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2900E3858D20 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 59F1CD75; Thu, 13 Apr 2023 07:51:00 -0700 (PDT) Received: from [10.2.78.76] (unknown [10.2.78.76]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 10ED83F73F; Thu, 13 Apr 2023 07:50:14 -0700 (PDT) Message-ID: Date: Thu, 13 Apr 2023 15:50:13 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: RFC: Adding a SECURITY.md document to the Binutils Content-Language: en-GB To: Siddhesh Poyarekar , Nick Clifton , Binutils Cc: "gdb@sourceware.org" References: <1c38b926-e003-0e21-e7f1-3d5dbec2aabf@redhat.com> <5b147005-bd28-4cf9-b9e7-479ef02cb1ad@foss.arm.com> <5d044987-39eb-a060-1b2b-9d07b1515e7d@gotplt.org> <73bc480a-a927-2773-8756-50350f76dfbf@gotplt.org> <4ed86e65-0b7f-11d4-8061-2c5d0b1e147e@foss.arm.com> <7b6b10f8-e480-8efa-fbb8-4fc4bf2cf356@gotplt.org> <0224757b-6b17-f82d-c0bf-c36042489f5e@foss.arm.com> <01e846c0-c6bf-defe-0563-1ed6309b7038@gotplt.org> <2d4c7f13-8a35-3ce5-1f90-ce849a690e66@foss.arm.com> <01b8e177-abfd-549e-768f-1995cab5c81d@gotplt.org> In-Reply-To: <01b8e177-abfd-549e-768f-1995cab5c81d@gotplt.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: gdb@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Richard Earnshaw via Gdb Reply-To: Richard Earnshaw Errors-To: gdb-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb" On 13/04/2023 14:56, Siddhesh Poyarekar wrote: > On 2023-04-13 09:40, Richard Earnshaw wrote: >>> it just feels different because you elided the transport mechanism. >>> Fundamentally, it is unsafe to do anything with untrusted content >>> without sandboxing, so objdump is no different.  Sure, objdump is an >>> analysis tool, so it should be able to analyze foo.o without >>> crashing, but that's a robustness issue, not a security one.  The >>> security aspect should be handled by a sandbox. >> >> Sorry, I disagree.  Sending files to third parties is completely >> outside of the intended scope of objdump, so if it ends up being able >> to do so, that's a security issue. > > You're mixing up scope.  Given the flexibility of ELF, it is possible to > get any ELF interpreter to do pretty much anything[1], including sending > files to arbitrary places, deleting parts of the filesystem the > executing user has access to, etc.  It is the responsibility of the > layer outside of objdump (i.e. the execution environment) to constrain > this. > > To secure objdump and other tools from such compromise, what you'd > actually need is, e.g. a --isolate flag that does an unshare()/chroot() > holding the open file descriptor and does a very constrained analysis of > untrusted binaries.  That's one way we could control the execution > environment to make sure none of it leaks. > > Sid > > [1] > https://www.usenix.org/system/files/conference/woot13/woot13-shapiro.pdf No, whilst elf can be executed, objdump should never be doing that: it's a tool for examining a file, not running it. You have to have a tool that can safely examine the contents of an elf file or you can never verify it for issues - opening it up in emacs to examine the contents is not the way to do that :) But all that is beside the point. The original case I gave was a /corrupt/ elf file that caused a buffer overrun in the objdump binary. R.