Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 11 Aug 2020 14:14:43 -0500
From: (Eric W. Biederman)
To: Mickaël Salaün <>
Cc:,  Aleksa Sarai <>,  Alexei
 Starovoitov <>,  Al Viro <>,  Andrew
 Morton <>,  Andy Lutomirski <>,
  Christian Brauner <>,  Christian Heimes
 <>,  Daniel Borkmann <>,  Deven
 Bowers <>,  Dmitry Vyukov
 <>,  Eric Biggers <>,  Eric Chiang
 <>,  Florian Weimer <>,  James
 Morris <>,  Jan Kara <>,  Jann Horn
 <>,  Jonathan Corbet <>,  Kees Cook
 <>,  Lakshmi Ramasubramanian
 <>,  Matthew Garrett <>,
  Matthew Wilcox <>,  Michael Kerrisk
 <>,  Mimi Zohar <>,  Philippe
 Trébuchet <>,  Scott Shell
 <>,  Sean Christopherson
 <>,  Shuah Khan <>,  Steve
 Dower <>,  Steve Grubb <>,  Tetsuo
 Handa <>,  Thibaut Sautereau
 <>,  Vincent Strubel
Subject: Re: [PATCH v7 1/7] exec: Change uselib(2) IS_SREG() failure to EACCES (Eric W. Biederman) writes:

> Mickaël Salaün <> writes:
>> From: Kees Cook <>
>> Change uselib(2)' S_ISREG() error return to EACCES instead of EINVAL so
>> the behavior matches execve(2), and the seemingly documented value.
>> The "not a regular file" failure mode of execve(2) is explicitly
>> documented[1], but it is not mentioned in uselib(2)[2] which does,
>> however, say that open(2) and mmap(2) errors may apply. The documentation
>> for open(2) does not include a "not a regular file" error[3], but mmap(2)
>> does[4], and it is EACCES.
> Do you have enough visibility into uselib to be certain this will change
> will not cause regressions?
> My sense of uselib is that it would be easier to remove the system call
> entirely (I think it's last use was in libc5) than to validate that a
> change like this won't cause problems for the users of uselib.
> For the kernel what is important are real world users and the manpages
> are only important as far as they suggest what the real world users
> do.


My apologies. After reading the next patch I see that what really makes
this safe is: 73601ea5b7b1 ("fs/open.c: allow opening only regular files
during execve()").

As in practice this change has already been made and uselib simply
can not reach the !S_ISREG test.

It might make sense to drop this patch or include that reference
in the next posting of this patch.


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.