aboutsummaryrefslogtreecommitdiff
path: root/NOFORK_NOEXEC.lst
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-08-07 18:18:09 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2017-08-07 18:18:09 +0200
commit248a67fb75a0d2c98f4f9935b7bb9e11382b2c78 (patch)
treeeea88807a0b5d936d158ef7a62dfb051df174e96 /NOFORK_NOEXEC.lst
parent316d38e25883c68e51533029dbab059ae0731de8 (diff)
downloadbusybox-w32-248a67fb75a0d2c98f4f9935b7bb9e11382b2c78.tar.gz
busybox-w32-248a67fb75a0d2c98f4f9935b7bb9e11382b2c78.tar.bz2
busybox-w32-248a67fb75a0d2c98f4f9935b7bb9e11382b2c78.zip
free,stat: make NOEXEC
pkill/pgrep/pidof uncovered another quirk: what about noexec's _process names_? Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'NOFORK_NOEXEC.lst')
-rw-r--r--NOFORK_NOEXEC.lst18
1 files changed, 10 insertions, 8 deletions
diff --git a/NOFORK_NOEXEC.lst b/NOFORK_NOEXEC.lst
index 70f38d867..8ec3bdbe6 100644
--- a/NOFORK_NOEXEC.lst
+++ b/NOFORK_NOEXEC.lst
@@ -16,6 +16,8 @@ leak categories.
16 16
17Why can't be NOEXEC: 17Why can't be NOEXEC:
18suid: runs under different uid - must fork+exec 18suid: runs under different uid - must fork+exec
19if it's important that /proc/PID/cmdline and comm are correct.
20 ("pkill sh" killing itself before it kills real "sh" is no fun)
19 21
20Why shouldn't be NOFORK/NOEXEC: 22Why shouldn't be NOFORK/NOEXEC:
21rare: not started often enough to bother optimizing (example: poweroff) 23rare: not started often enough to bother optimizing (example: poweroff)
@@ -131,7 +133,7 @@ flash_unlock - hardware
131flashcp - hardware 133flashcp - hardware
132flock - spawner, changes state (file locks), let's play safe and not be noexec 134flock - spawner, changes state (file locks), let's play safe and not be noexec
133fold - noexec. runner 135fold - noexec. runner
134free - nofork candidate(struct globals, needs to close /proc/meminfo fd) 136free - noexec. nofork candidate(struct globals, needs to close /proc/meminfo fd)
135freeramdisk - leaks: open+ioctl_or_perror_and_die 137freeramdisk - leaks: open+ioctl_or_perror_and_die
136fsck - interactive, longterm 138fsck - interactive, longterm
137fsck.minix - needs ^C 139fsck.minix - needs ^C
@@ -172,7 +174,7 @@ inotifyd - daemon
172insmod - noexec 174insmod - noexec
173install - runner 175install - runner
174ionice - noexec. spawner 176ionice - noexec. spawner
175iostat - runner 177iostat - longterm: "iostat 1" runs indefinitely
176ip - noexec candidate 178ip - noexec candidate
177ipaddr - noexec candidate 179ipaddr - noexec candidate
178ipcalc - noexec candidate 180ipcalc - noexec candidate
@@ -244,7 +246,7 @@ mv - noexec candidate, runner
244nameif - noexec. openlog(), leaks: config_open2+ioctl_or_perror_and_die 246nameif - noexec. openlog(), leaks: config_open2+ioctl_or_perror_and_die
245nbd-client - noexec 247nbd-client - noexec
246nc - runner 248nc - runner
247netstat - runner with -c 249netstat - longterm with -c (continuous listing)
248nice - noexec. spawner 250nice - noexec. spawner
249nl - runner 251nl - runner
250nmeter - longterm 252nmeter - longterm
@@ -257,13 +259,13 @@ partprobe - noexec. leaks: open+ioctl_or_perror_and_die(BLKRRPART)
257passwd - suid 259passwd - suid
258paste - noexec. runner 260paste - noexec. runner
259patch - needs ^C 261patch - needs ^C
260pgrep - nofork candidate(xregcomp, procps_scan - are they ok?) 262pgrep - must fork+exec to get correct /proc/PID/cmdline and comm field
261pidof - nofork candidate(uses find_pid_by_name, is that ok?) 263pidof - must fork+exec to get correct /proc/PID/cmdline and comm field
262ping - suid, longterm 264ping - suid, longterm
263ping6 - suid, longterm 265ping6 - suid, longterm
264pipe_progress - longterm 266pipe_progress - longterm
265pivot_root - NOFORK 267pivot_root - NOFORK
266pkill - nofork candidate(xregcomp, procps_scan - are they ok?) 268pkill - must fork+exec to get correct /proc/PID/cmdline and comm field
267pmap - noexec candidate, leaks: open+xstrdup 269pmap - noexec candidate, leaks: open+xstrdup
268popmaildir - runner 270popmaildir - runner
269poweroff - rare 271poweroff - rare
@@ -329,7 +331,7 @@ sort - noexec. runner
329split - runner 331split - runner
330ssl_client - longterm 332ssl_client - longterm
331start-stop-daemon - not noexec: uses bb_common_bufsiz1 333start-stop-daemon - not noexec: uses bb_common_bufsiz1
332stat - nofork candidate(needs fewer allocs) 334stat - noexec. nofork candidate(needs fewer allocs)
333strings - runner 335strings - runner
334stty - noexec. nofork candidate: has no allocs or opens except xmove_fd(xopen("-F DEVICE"),STDIN). tcsetattr(STDIN) is not a problem: it would work the same across processes sharing this fd 336stty - noexec. nofork candidate: has no allocs or opens except xmove_fd(xopen("-F DEVICE"),STDIN). tcsetattr(STDIN) is not a problem: it would work the same across processes sharing this fd
335su - suid, spawner 337su - suid, spawner
@@ -338,7 +340,7 @@ sum - runner
338sv - noexec. needs ^C (uses usleep(420000)) 340sv - noexec. needs ^C (uses usleep(420000))
339svc - noexec. needs ^C (uses usleep(420000)) 341svc - noexec. needs ^C (uses usleep(420000))
340svlogd - daemon 342svlogd - daemon
341swapoff - rare 343swapoff - longterm: may cause memory pressure, execing is beneficial
342swapon - rare 344swapon - rare
343switch_root - spawner, rare, changes state (oh yes), execing may be important to free binary's inode 345switch_root - spawner, rare, changes state (oh yes), execing may be important to free binary's inode
344sync - NOFORK 346sync - NOFORK