From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id EF7D13858422; Fri, 14 Apr 2023 09:52:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EF7D13858422 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=foss.arm.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=foss.arm.com 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 E48711FB; Fri, 14 Apr 2023 02:53:04 -0700 (PDT) Received: from [10.2.78.76] (e126323.cambridge.arm.com [10.2.78.76]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BB03C3F587; Fri, 14 Apr 2023 02:52:19 -0700 (PDT) Message-ID: Date: Fri, 14 Apr 2023 10:52:18 +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> <43912382-2d32-9fff-8dad-5c41491eb804@foss.arm.com> <613a6e55-846c-9f1f-cfd0-046b52487ae3@gotplt.org> From: Richard Earnshaw In-Reply-To: <613a6e55-846c-9f1f-cfd0-046b52487ae3@gotplt.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3488.0 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,MEDICAL_SUBJECT,NICE_REPLY_A,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 13/04/2023 17:42, Siddhesh Poyarekar wrote: > On 2023-04-13 11:05, Richard Earnshaw wrote: >> On 13/04/2023 16:02, Siddhesh Poyarekar wrote: >>> On 2023-04-13 10:50, Richard Earnshaw wrote: >>>> 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 :) >>> >>> You can verify it for issues, in a sandbox. >> >> Maybe.  But not always, it might not crash the program, but still lead >> to issues once taken outside of the sandbox. > > You don't analyze untrusted data outside of a sandbox.  Really, it's > security 101. I think your definition of trusted and untrusted must vary from mine. And I think your expectations on users is somewhat unreasonable. In my book any binary object obtained from the internet is /potentially/ untrusted. That includes any object file that is downloaded from, say, a Red Hat server in an RPM package (even if it's been signed). Are you seriously suggesting that every user should deal with every file as though it was completely untrustworthy? > >>>> 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. >>> >>> ... and that's a robustness issue.  Any buffer overrun in any program >>> could in theory be exploited to send out files. >>> >> >> So what's your point?  These /are/ vulnerabilities in the program and >> need to be considered security issues. > > I already made my point; I agree that they are security issues but the > security mitigation mechanism is in the environment, not the program.  I > do not think it is in the interest of the binutils project to guarantee > safety in analysis of untrusted programs without requisite protections > of the environment. > > Sid Any buffer overflow where the data used to do the overflow comes from an object file is a potential breach, unless the program can detect this and make a controlled abort before any possible break-out can occur. The key here is defence in depth. It's not enough to say that everything must be done in a sandbox, even if that is advisable. R.