jeby Posted September 25, 2014 Share Posted September 25, 2014 Scoperta una falla nella shell gnu bash che potrebbe permettere l'esecuzione di codice malevolo NVD - Detail [TABLE][TR] [TD=colspan: 2]Original release date: 09/24/2014 Last revised: 09/24/2014 Source: US-CERT/NIST [h=4]Overview[/h]GNU Bash through 4.3 processes trailing strings after function definitions in the values of environment variables, which allows remote attackers to execute arbitrary code via a crafted environment, as demonstrated by vectors involving the ForceCommand feature in OpenSSH sshd, the mod_cgi and mod_cgid modules in the Apache HTTP Server, scripts executed by unspecified DHCP clients, and other situations in which setting the environment occurs across a privilege boundary from Bash execution. [h=4]Impact[/h][h=5]CVSS Severity (version 2.0):[/h]CVSS v2 Base Score: 10.0 (HIGH) (AV:N/AC:L/Au:N/C:C/I:C/A:C) (legend) Impact Subscore: 10.0 Exploitability Subscore: 10.0 [h=5]CVSS Version 2 Metrics:[/h]Access Vector: Network exploitable Access Complexity: Low Authentication: Not required to exploit Impact Type: Allows unauthorized disclosure of information; Allows unauthorized modification; Allows disruption of service [h=4]References to Advisories, Solutions, and Tools[/h]By selecting these links, you will be leaving NIST webspace. We have provided these links to other web sites because they may have information that would be of interest to you. No inferences should be drawn on account of other sites being referenced, or not, from this page. There may be other web sites that are more appropriate for your purpose. NIST does not necessarily endorse the views expressed, or concur with the facts presented on these sites. Further, NIST does not endorse any commercial products that may be mentioned on these sites. Please address comments about this page to nvd@nist.gov. External Source: CONFIRM Name: https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/ Hyperlink: https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/ External Source: CONFIRM Name: https://bugzilla.redhat.com/show_bug.cgi?id=1141597 Type: Patch Information Hyperlink: https://bugzilla.redhat.com/show_bug.cgi?id=1141597 [h=4]Vulnerable software and versions[/h][TABLE] [TR] [TD][/TD] [TD]Configuration 1[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD][/TD] [TD]OR[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:1.14.0[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:1.14.1[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:1.14.2[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:1.14.3[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:1.14.4[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:1.14.5[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:1.14.6[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:1.14.7[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:2.0[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:2.01[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:2.01.1[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:2.02[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:2.02.1[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:2.03[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:2.04[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:2.05[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:2.05:a[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:2.05:b[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:3.0[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:3.0.16[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:3.1[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:3.2[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:3.2.48[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:4.0[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:4.0:rc1[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:4.1[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:4.2[/TD] [/TR] [/TABLE] [TABLE] [TR] [TD] [/TD] [TD] [/TD] [TD][/TD] [TD]* cpe:/a:gnu:bash:4.3[/TD] [/TR] [/TABLE] * Denotes Vulnerable Software Changes related to vulnerability configurations [h=4]Technical Details[/h]Vulnerability Type (View All) OS Command Injections (CWE-78) CVE Standard Vulnerability Entry CVE - CVE-2014-6271  [/TD] [/TR] [/TABLE] la falla è già stata corretta su Debian e altre principali distribuzioni GNU/Linux, aggiornate. Su Mac aspetteremo le calende greche, volendo si può compilare la bash aggiornata oppure installarla tramite homebrew disabilitando l'esecuzione di quella di sistema: security - How do I recompile Bash to avoid the remote exploit CVE-2014-6271 and CVE-2014-7169? - Ask Different potenzialmente esposti tutti i dispositivi con installato bash, quindi non necessariamente tutta la roba *nix. Molti sistemi embedded (e non) usano shell alternative o strippate tipo busybox. per verificare se la vostra bash è vulnerabile, digitate questo comando env x='() { :;}; echo vulnerabile' bash -c "echo prova" se il risultato è vulnerabile prova senza messaggi di errore, allora è vulnerabile. Ciao. Mazda MX-5 20th anniversary "barbone edition" - Tutto quello che scrivo è IMHO Link to comment Share on other sites More sharing options...
lantanio Posted September 25, 2014 Share Posted September 25, 2014 Jeby hai il potere di farmi sentire nato nel 1831 ... Cavolo è 'sta roba? Cosa devo fare al mio Imac? Clio trefaseb dinamica e Scenic edizione uno entrambe alimentate a miscela di idrocarburi contenenti da 13 a 18 atomi di C. Link to comment Share on other sites More sharing options...
Мир Posted September 25, 2014 Share Posted September 25, 2014 Cavoli... nessuna delle mie macchine da' messaggio di errore... La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché! (Albert Einstein) Link to comment Share on other sites More sharing options...
jeby Posted September 25, 2014 Author Share Posted September 25, 2014 (edited) Jeby hai il potere di farmi sentire nato nel 1831 ...Cavolo è 'sta roba? Cosa devo fare al mio Imac? io non farei nulla anzi, io al mio MBP non faccio nulla. Ho aggiornato il server Pi solo perché è appiccicato ad internet 24/7. Inoltre la falla in questione è in giro da millemila anni, quindi... in ogni caso, se vuoi puoi: - aspettare che Apple mandi l'aggiornamento per risolvere la vulnerabilità (scelta consigliata) - sostituire la versione di bash installata con una più recente, togliendo i diritti di esecuzione ai vecchi binari, ad esempio si può fare così (se hai Xcode installato): ATTENZIONE PROCEDURA SCONSIGLIATA E POTENZIALMENTE DANNOSA da terminale: mkdir bash-fixcd bash-fixcurl https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf - cd bash-92/bash-3.2 curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052| patch -p0 cd .. xcodebuild sudo cp /bin/bash /bin/bash.old sudo cp /bin/sh /bin/sh.old build/Release/bash --version # GNU bash, version 3.2.52(1)-release build/Release/sh --version # GNU bash, version 3.2.52(1)-release sudo cp build/Release/bash /bin $ sudo cp build/Release/sh /bin in questo modo hai scaricato l'ultima versione, copiato la precedente in un file di backup, compilato con xcode la nuova versione. fatto ciò, con questo comando: sudo chmod a-x /bin/bash.old /bin/sh.old togli i privilegi di esecuzione ai file di backup della vecchia versione di bash (e sh). L'alternativa è utilizzare homebrew per installare una versione alternativa di bash. In questo caso bisognerà procedere ad abilitare la nuova bash come bash di default e poi comunque togliere i privilegi di esecuzione alla bash originale sudo chmod a-x /bin/bash/bin/sh capisci magintosc? Edited September 25, 2014 by jeby AGGIUNTO DISCLAIMER Mazda MX-5 20th anniversary "barbone edition" - Tutto quello che scrivo è IMHO Link to comment Share on other sites More sharing options...
loric Posted September 25, 2014 Share Posted September 25, 2014 Se una macchina è esposta ad internet ma: 1) non ha un serverino http con accesso dall'esterno 2) non ha ssh con accesso dall'esterno non c'è nessuna particolare urgenza nell'aggiornare bash. Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona". Link to comment Share on other sites More sharing options...
lantanio Posted September 25, 2014 Share Posted September 25, 2014 Grazie mille, la mia ignoranza non ha confini. Devo verificare il mio PC "scaricatore" (mio portatile del 2004 con lubuntu) che ha come unico compito il suo nome. Clio trefaseb dinamica e Scenic edizione uno entrambe alimentate a miscela di idrocarburi contenenti da 13 a 18 atomi di C. Link to comment Share on other sites More sharing options...
Jack.Torrance Posted September 25, 2014 Share Posted September 25, 2014 (edited) Io continuo a non capire di che si sta parlando.... P.s. Credevo di essere un degno Homo Sapiens Electronicus ma, ogni giorno che passa, mi scopro appartenente alla specie Homo Neandertalensis Ignorantus. Edited September 25, 2014 by Jack.Torrance I'M IN LOVE!™ "La 6° marcia, K@zzo!" Link to comment Share on other sites More sharing options...
jeby Posted September 25, 2014 Author Share Posted September 25, 2014 Se una macchina è esposta ad internet ma:1) non ha un serverino http con accesso dall'esterno 2) non ha ssh con accesso dall'esterno non c'è nessuna particolare urgenza nell'aggiornare bash. ma nel caso di SSH con accesso dall'esterno (come nel mio caso), se la connessione è protetta da una password sufficientemente robusta il rischio c'è comunque o no? Mazda MX-5 20th anniversary "barbone edition" - Tutto quello che scrivo è IMHO Link to comment Share on other sites More sharing options...
loric Posted September 25, 2014 Share Posted September 25, 2014 Io continuo a non capire di che si sta parlando.... Con bash è possibile creare delle funzioni che poi si esportano ai processi derivati attraverso le variabili d'ambiente. Queste funzioni permettono di aggiungere funzionalità a bash e ai relativi script. Una dichiarazione di funzione appositamente malformata (vedi esempio / test di jeby) può causare il bug. Il bug consiste nel fatto che la funzione malandrina non viene eseguita solo se richiamata dalla shell del processo derivato, bensì automaticamente all'atto della creazione dell'ambiente per il processo figlio. Chiaro no? Ora vediamo in concreto. [COLOR=#000000]$ env x='() { :;}; echo vulnerabile' bash -c "echo prova"[/COLOR] 1) env è il comando che serve a dichiarare la funzione da esportare con la variabile d'ambiente x che in questo caso è anche il nome della funzione. 2) () serve a far capire a bash che, appunto, si tratta di una dichiarazione di funzione e non di una mera dichiarazione di variabile. 3) { :;} Le parentesi graffe racchiudono le istruzioni che compongono la funzione. In questo caso la funzione non fa nulla: : e ; si mettono perché una dichiarazione di funzione non può essere vuota (: è un no-op di bash, cioè non fa nulla, equivale a "true", ; è il simbolo di fine riga di comando) . 4) ; echo vulnerabile stampa sul terminale "vulnerabile". Questo comando però è al di fuori delle {} e bash dovrebbe rifiutarsi di accettarlo nella definizione della funzione x(), ma questo non succede, anzi (vedi dopo) 5) bash -c "echo prova" lancia un processo derivato (o child process) con un'altra istanza di bash che viene istruita (switch -c) ad eseguire "echo prova" (cioè stampa "prova" sul terminale). Nel creare l'ambiente per il processo derivato, bash esporta le variabili d'ambiente del processo principale, ivi compresa la funzione x(). Ma visto che questa è malformata (e bash è buggato) non solo bash la esporta, ma la esegue. Ecco perché le versioni buggate di bash, con quel comando, stampano "vulnerabile". Una versione non buggata di bash si comporta così: $ env x='() { :;}; echo vulnerabile' bash -c "echo prova"bash: warning: x: ignoring function definition attemptbash: error importing function definition for `Øprova - - - - - - - - - - AGGIUNTA al messaggio già esistente - - - - - - - - - - ma nel caso di SSH con accesso dall'esterno (come nel mio caso), se la connessione è protetta da una password sufficientemente robusta il rischio c'è comunque o no? No. Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona". Link to comment Share on other sites More sharing options...
jeby Posted September 25, 2014 Author Share Posted September 25, 2014 (edited) No. Grazie, comunque dal sito di attivissimo: ShellShock: falla critica in Linux, Mac OS X e altri sistemi operativi basati su Unix | Il Disinformatico È già in circolazione il primo malware (un bot) che sfrutta questa vulnerabilità (Virustotal; Kernelmode.info). Aggiornate i vostri antivirus, che dovrebbero già riconoscere questo malware. Una spiegazione molto dettagliata è su Troyhunt.comTroyhunt.com. aggiornamento 2: occhio a ricompilare la bash su Mac che può portare problemi e non risolvere nulla: http://alblue.bandlem.com/2014/09/bash-remote-vulnerability.html - - - - - - - - - - AGGIUNTA al messaggio già esistente - - - - - - - - - - Mi viene il dubbio sul router, dovrebbe avere busybox e non bash, ma come faccio a verificare? Mi ci devo connettere in ssh immagino... Comunque l'articolo su troyhunt è molto interessante Edited September 25, 2014 by jeby Mazda MX-5 20th anniversary "barbone edition" - Tutto quello che scrivo è IMHO Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now