Perché questo è un problema di sicurezza?
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820331
>
> very predictable temporary files (like
> /tmp/cronic.out.$$) that depends only on PID:
> OUT=/tmp/cronic.out.$$
> ERR=/tmp/cronic.err.$$
> TRACE=/tmp/cronic.trace.$$
> "$@" >$OUT 2>$TRACE
Use CVE-2016-3992.
La sicurezza attraverso l'oscurità non rallenta mai i moderni software di hacking e semplifica sempre il debugging.
Con la directory /tmp
che ha sempre il bit sticky set (drwxrwxrwt), ciò non impedisce l'eliminazione e la sostituzione da parte di un utente malintenzionato?
Aggiornamento 2016-05-08
Sulla base della risposta di Lie Ryan, hai sperimentato i seguenti risultati ...
System
Puppy Linux 5.2.8 (based on Ubuntu 10.04)
Privileged User
root
/etc/passwd
root:x:0:0:root:/root:/bin/bash
$PATH
:/root/bin::/src/bin:/root/bin:/bin:/usr/bin: ...
> groups root
root : root tty
> id -nG root
root tty
Unprivileged User
spot
/etc/passwd
spot:x:502:502:Linux User,,,:/home/spot:/bin/sh
$PATH
:/root/bin::/src/bin:/root/bin:/bin:/usr/bin: ...
> groups spot
spot : spot
> id -nG spot
spot
Owners, Groups, Permissions
> ls -l /bin/busybox /bin/cat
-rwxr-x--- 1 root root 637960 2011-08-17 11:04 /bin/busybox
-rwxr-xr-x 1 root root 50820 2011-08-17 11:04 /bin/cat
> ls -l /usr/bin/less
lrwxrwxrwx 1 root root 17 2011-08-17 10:49 /usr/bin/less -> ../../bin/busybox
> ls -l /home/spot/myless /home/spot/text
lrwxrwxrwx 1 spot spot 13 2016-05-08 12:23 /home/spot/myless -> /usr/bin/less
-rw-r--r-- 1 spot spot 12 2016-05-08 13:01 /home/spot/text
Expected Behavior
Thus, unprivileged user 'spot' should be able to run 'cat', but not 'less'.
Attempt to run 'less' via the symlink (indented for clarity)
root@LX03:~ su spot
spot@LX03:~ pwd
/home/spot
spot@LX03:~ echo $PATH
:/root/bin::/src/bin:/root/bin:/bin:/usr/bin: ...
spot@LX03:~ ls -l myless text
lrwxrwxrwx 1 spot spot 13 2016-05-08 12:23 myless -> /usr/bin/less
-rw-r--r-- 1 spot spot 12 2016-05-08 13:01 text
spot@LX03:~ cat text
sample text
spot@LX03:~ myless text
sh: ./myless: Permission denied
Se ho capito bene, la vulnerabilità dei file tmp con suffissi pid sarebbe di un programma dannoso che crea "un link simbolico a un file privilegiato" (presumibilmente un file eseguibile) per poterlo eseguire, anche se il proprietario del file il programma dannoso non ha altrimenti le autorizzazioni necessarie per farlo. È una comprensione corretta?
Se è così, mi manca qualcosa.
Proprietà, gruppo e permessi (OGP) si trovano sul file effettivo, non sulla voce della directory. Un collegamento simbolico è una voce di directory che punta a un'altra voce di directory.
Non capisco come un link simbolico possa aprire una vulnerabilità.
A quanto ho capito, e il mio supporto agli esperimenti, gli OGP sono globali all'intero filesystem indipendentemente da come si trova un file. Non importa se il file accede a un link simbolico, cercando le directory $PATH
o inserendo direttamente l'intero percorso.
L'unico modo in cui vedo un eseguibile può essere usato per accedere a directory e file a cui il proprietario dell'eseguibile ha accesso, ma l'utente che lo esegue non lo è, se l'eseguibile ha SETUID o SETGID abilitato.
Che cosa sto fraintendendo?