Messages in this thread | | | From | (Eric W. Biederman) | Date | Fri, 09 Jan 2015 16:13:27 -0600 | Subject | Re: [PATCHv10 man-pages 5/5] execveat.2: initial man page for execveat(2) |
| |
Rich Felker <dalias@aerifal.cx> writes:
> On Fri, Jan 09, 2015 at 09:09:41PM +0000, Al Viro wrote:
> The "magic open-once magic symlink" approach is really the cleanest > solution I can find. In the case where the interpreter does not open > the script, nothing terribly bad happens; the magic symlink just > sticks around until _exit or exec. In the case where the interpreter > opens it more than once, you get a failure, but as far as I know > existing interpreters don't do this, and it's arguably bad design. In > any case it's a caught error.
And it doesn't work without introducing security vulnerabilities into the kernel, because it breaks close-on-exec semantics.
All you have to do is pick a file descriptor, good canidates are 0 and 255 and make it a convention that that file descriptor is used for fexecve. At least when you want to support scripts. Otherwise you can set close-on-exec.
That results in no accumulation of file descriptors because everyone always uses the same file descriptor.
Regardless you don't have a patch and you aren't proposing code and the code isn't actually broken so please go away.
Eric
| |