Re: RFC: Adding a SECURITY.md document to the Binutils

Siddhesh Poyarekar <[email protected]>
Newsgroups gmane.comp.gdb.devel,gmane.comp.gnu.binutils
Message-ID <[email protected]>
On 2023-04-14 16:46, Ian Lance Taylor wrote:
> On Fri, Apr 14, 2023 at 11:27 AM Siddhesh Poyarekar <[email protected]> wrote:
>>
>> A compiler crash, core dump, etc. is definitely a serious bug and we
>> consider them as P1/P2 in almost all cases.  However to be considered a
>> security issue, the input has to be crafted and that's where the user
>> comes in; their responsibility is to ensure that they don't build
>> untrusted code (e.g. when they're trying to study malware or virus
>> sources or binaries) outside of sandboxes.
> 
> I believe I understand what you are saying, and I don't agree.
> 
> We live in a time where free software has succeeded.  People routinely
> rely on gigantic libraries provided as source code by people across
> the Internet.  10% of the projects on GitHub are written at least
> partially in C++.  To argue that people should not even compile
> untrusted code is to speak about a world that simply does not exist
> today.  Very few people working on application level code can trust
> their entire software supply chain.
> 
> This means that software development must be secure at every level.
> We must not rely on the single layer of defense of trusting source
> code, a defense that very few people can maintain.  We must defend at
> other levels.
> 
> The binutils developers must play their own small part in this, which
> is to assemble and link code correctly, and to not make the assembler,
> linker, and related tools themselves into vectors for security issues.

I don't disagree with that as an end goal (I even suggested that in that 
previous thread last year), I think our disagreement is in how we get 
there in terms of policy, which is a result of that conversation from 
last year and from exploring how llvm and rust are handling it.

>> If as a project we decide to treat untrusted input as a valid use case,
>> it is going to shift the goalposts for binutils (and gcc, if we take the
>> same stand there). I suppose golang does try to adhere to these higher
>> standards somewhat but I am not well versed with their formal position
>> on this.  I've seen them consider bugs due to untrusted regex inputs as
>> security issues whereas even glibc currently doesn't, except for some
>> very specific conditions.
> 
> Yes, the Go project does aim to adhere to these higher standards,
> because, in my opinion, they are the correct standards.
> 
> And, honestly, these are not standards that are unusually difficult to
> meet.  Don't dump core, don't use up all of memory, don't have buffer
> overflows.  Treat failures of this sort as security bugs to be fixed
> ASAP in minor releases.  These are achievable goals.

Sure, they're achievable with adequate resources, but I'm not sure if 
the binutils project has that; that was in essence the conclusion of 
last year's conversation FWIW.  That of course is a question for the 
maintainers of the project.

Thanks,
Sid
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.