PDA

Visualizza la versione completa : Scoperta gravissima vulnerabilita' in bash (Linux, BSD, Mac OSx)


pilovis
27-09-2014, 00:35
Vedi ultimo post nelle pilloline:

http://forum.html.it/forum/showthread.php?threadid=1019664&pagenumber=41&postid=25252324#post25252324 (http://forum.html.it/forum/showthread.php?threadid=1019664&pagenumber=41&postid=25252324#post25252324)

P.S.: c'e' anche il rimedio :)

MItaly
27-09-2014, 13:44
La cosa allucinante non Ŕ che sia vulnerabile, ma il fatto che qualcuno abbia pensato che fare l'eval a caso di tutte le variabili d'ambiente fosse una buona idea... :afraid:

andrea.paiola
27-09-2014, 17:51
La cosa allucinante non Ŕ che sia vulnerabile, ma il fatto che qualcuno abbia pensato che fare l'eval a caso di tutte le variabili d'ambiente fosse una buona idea... :afraid:
erano altri tempi...
http://paste.lisp.org/display/143864

sacarde
27-09-2014, 17:56
ma cosa fa il comando:


env VAR='() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"


e quali danni puo' fare ?

andrea.paiola
27-09-2014, 17:58
ma cosa fa il comando:


env VAR='() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"


e quali danni puo' fare ?
mi pare testi semplicemente la vulnerabilitÓ e nel caso positivo riporti Bash is vulnerable!

sacarde
27-09-2014, 18:03
ma


env VAR='() { :;};

che fa? sembra un forkbomb

andrea.paiola
27-09-2014, 18:09
ma


env VAR='() { :;};

che fa? sembra un forkbomb
la vulnerabilitÓ Ŕ appunto non fare il parsing e quindi l'escape corretto (teorico, visto che come ho scritto Ŕ considerata una feature di Bash... Bash si aspetta che gli vengano passate variabili giÓ controllate) delle variabili d'ambiente al subprocess... questo certo Ŕ in comune con molti forkbomb :)


So, we're in the context of designing a unix shell, where subprocesses are created and run in a casual and normal manner. When creating a new subprocess, environment variables can be used to pass some data from the parent process to the child process. In the case of bash, it is a feature that has been wanted, to have some functions defined in the parent bash process also be transmitted and defined in the child bash process. Using environment variables to pass the definition of those functions is natural.

Where the implementation slightly went beyond the specifications, is that it also executes any command present after the definition of the function passed in an environment variable. Since it's usually the bash program which generates the value of the environment variables used to pass those functions, there's normally no further command. But in the context where bash was designed, if a user added commands to such environment variables, it could be still considered a feature. In any case, the child process is executed on behalf of the user who configured the environment variable, so there's no security consideration to matter.

andrea.paiola
27-09-2014, 21:12
Elenco dei vettori conosciuti

For a service to be vulnerable to Shell Shock, three conditions must be met:

It must set an environment variable whose value (not necessarily name) is attacker-controlled, and particularly must be made to begin with () {.
It must invoke bash.
The system must be running a vulnerable version of bash.

https://www.dfranke.us/posts/2014-09-27-shell-shock-exploitation-vectors.html

MItaly
28-09-2014, 00:06
erano altri tempi...
http://paste.lisp.org/display/143864
Mah, il solo fatto che il tizio dica che secondo lui Ŕ un baco di Apache non filtrare le variabili d'ambiente la dice lunga... Che, adesso Apache deve sapere delle paturnie di ogni possibile shell/interprete e filtrare di conseguenza? Non diciamo cazzate, non si fa l'eval di cose a caso, punto, cercare di risolvere il problema con filtri a livello di web server sarebbe lo stesso approccio delle atroci magic_quotes di PHP.

andrea.paiola
28-09-2014, 10:31
Mah, il solo fatto che il tizio dica che secondo lui Ŕ un baco di Apache non filtrare le variabili d'ambiente la dice lunga... Che, adesso Apache deve sapere delle paturnie di ogni possibile shell/interprete e filtrare di conseguenza? Non diciamo cazzate, non si fa l'eval di cose a caso, punto, cercare di risolvere il problema con filtri a livello di web server sarebbe lo stesso approccio delle atroci magic_quotes di PHP.
beh ma scusa io non lo considererei sicuro un sistema che ti permette da remoto e senza controlli di settare variabili d'ambiente... e pi¨ che Apache sarebbe PHP, in questo caso.
Poi certo sarebbe ottimo controllare le variabili d'ambiente quando le usi, ma in prima istanza non le farei settare.
Comunque ripeto: semplicemente non si aspettavano che altri software usassero Bash in quel modo.

Loading