e0f5c1387d
Austin Group bugs #1226 and #1250 changed the requirements for shell scripts without #! (POSIX does not specify #!; this is about the shell execution when execve(2) returns an [ENOEXEC] error). POSIX says we shall allow execution if the initial part intended to be parsed by the shell consists of characters and does not contain the NUL character. This allows concatenating a shell script (ending with exec or exit) and a binary payload. In order to reject common binary files such as PNG images, check that there is a lowercase letter or expansion before the last newline before the NUL character, in addition to the check for the newline character suggested by POSIX. |
||
---|---|---|
.. | ||
cat | ||
chflags | ||
chio | ||
chmod | ||
cp | ||
csh | ||
date | ||
dd | ||
df | ||
domainname | ||
echo | ||
ed | ||
expr | ||
freebsd-version | ||
getfacl | ||
hostname | ||
kenv | ||
kill | ||
ln | ||
ls | ||
mkdir | ||
mv | ||
pax | ||
pkill | ||
ps | ||
pwait | ||
pwd | ||
realpath | ||
rm | ||
rmail | ||
rmdir | ||
setfacl | ||
sh | ||
sleep | ||
stty | ||
sync | ||
test | ||
tests | ||
uuidgen | ||
Makefile | ||
Makefile.inc |