Come posso risolvere la vulnerabilità di sicurezza di Shellshock in debian testing / jessie?


24

Il comando di prova

x='() { :;}; echo vulnerable' bash

mostra che la mia installazione di Debian 8 (Jessie) è vulnerabile, anche con gli ultimi aggiornamenti. La ricerca mostra che esiste una patch per stabile e instabile, ma che i test sono senza patch.

Immagino che la patch arriverà ai test tra un paio di giorni, ma in realtà sembra abbastanza brutta da essere paranoica. C'è un modo per ottenere il pacchetto da unstable e installarlo senza rompere il mio sistema? L'aggiornamento a unstable sembra che causerà più problemi di quanti ne risolva.


Secondo Bob, esiste una seconda vulnerabilità di Shellshock, che è stata risolta in una seconda patch. Il test dovrebbe essere:

 env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("

Ma non sono abbastanza abile in Bash per capire cosa significhi o perché sia ​​un problema. Ad ogni modo, fa qualcosa di strano, che è impedito da bash_4.3-9.2_amd64.deb su sistemi a 64 bit, che al momento della modifica è stabile e instabile ma non in Jessie / testing.

Per risolvere questo problema per Jessie , procurati l'ultimo Bash da unstable e installalo con dpkg -i.

Offre Jemenake

wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb

come comando che otterrà la versione 4.3-9.2 per il tuo computer.

E puoi seguirlo con:

sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb

per installarlo.

Se hai bisogno di ulteriori patch instabili per il tuo sistema Jessie , questa è chiaramente la strada da percorrere ( mutatis mutandis ).

Risposte:


5

Scarica il pacchetto da unstable tramite questo link . Puoi anche controllare le dipendenze lì, anche se sembra che il bash instabile abbia le stesse dipendenze del bash dal test. Installa il deb scaricato con il seguente.

dpkg -i

1
Grazie, l'ho fatto e il problema è stato risolto senza distruggere nulla. Presumibilmente alla fine verrà sovrascritto nel normale corso degli aggiornamenti?
John Lawrence Aspden,

3
Il link sopra va bene se stai eseguendo un browser in una GUI. Meno se esegui lince in una sessione di shell. Se vuoi qualcosa che puoi incollare direttamente nella tua riga di comando per afferrarlo, prova: wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.1_$(dpkg --print-architecture).deb Otterrà l'architettura giusta per la tua scatola.
Jemenake,

1
@Jemenake Dovresti postarlo come risposta separata.
Eccellente il

Questa è stata sicuramente la risposta che volevo, ma ora che l'aggiornamento è arrivato a Jessie, penso che sia meglio se la risposta accettata è quella di cui le persone ora hanno bisogno, quindi mi sposto. Grazie comunque!
John Lawrence Aspden,

In realtà, ci sono due bug di shellshock e la correzione per il secondo è ora in sid ma non jessie, quindi questa è in realtà ancora la risposta giusta, (assicurati di ottenere 4.3-9.2!), Anche se senza dubbio la situazione si risolverà presto.
John Lawrence Aspden,

25

Ho modificato questa risposta per le correzioni di base aggiuntive rilasciate lunedì.

Per Ubuntu 12.04, ho eseguito un aggiornamento, ma ho anche dovuto eseguire l'installazione per bash per sbarazzarmi della vulnerabilità.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

Questo comando mostra che il sistema è vulnerabile, quindi esegui l'aggiornamento.

apt-get update && apt-get -y upgrade

Prova di nuovo

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

Ancora vulnerabile.

apt-get install -y bash

Prova di nuovo

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

Modifica: dopo il rilascio delle patch aggiuntive, l'output è cambiato.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test

Sìì! Fisso. Questo dovrebbe funzionare per altre versioni, ma non l'ho testato oltre la 12.04.

Inoltre, la risposta di runamok qui sotto funziona bene, quindi dagli un voto!


6
Proprio apt-get update && apt-get install -y bashsembra funzionare.
Runamok,

Sulla base della risposta di @JabawokJayUK sto ancora fallendo il primo test dopo l'aggiornamento bash in Ubuntu 12.04.
Birla,

Ricevo solo, this is a testma non l'errore e l'avvertimento. Nel mio computer locale ottengo l'errore, ma nel mio server no. Che cosa misura? Il mio server è patchato? Grazie.
ElBaulP

Sembra che il repository sia aggiornato ora, poiché non ho dovuto eseguire il passaggio apt-get install -y, il problema è stato risolto alredy dopo l'aggiornamento.
user316566,

1
Questo in realtà non risponde alla domanda su Debian testing / jessie. Ubuntu è una distribuzione diversa con repository di pacchetti indipendenti e pianificazioni di patch.
Bob,

16

Un'alternativa per Debian 6.0 (Squeeze) senza recuperare i pacchetti da Debian 7 (Wheezy):

Utilizzare il repository di sicurezza LTS con la patch di backport.

Aggiungi questo a /etc/apt/sources.list:

#LTS security
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

Quindi corri apt-get update && apt-get install bash.

Via: domande linux


Funziona con Debian 6. Manterremmo sempre la sicurezza LTC nell'elenco!
Stanleyxu2005,

4

apt-get updateprima apt-get dist-upgradee otterrai la patch. L'ho fatto da solo e c'è stato un aggiornamento bash che ha risolto il problema.


2
Il problema era che i test Debian non avevano ancora il pacchetto aggiornato, quindi scaricarlo manualmente da unstable e installare quella era la soluzione più semplice in quel momento; la soluzione fornita in questa risposta non avrebbe funzionato. (Forse ormai lo farà, perché il pacchetto potrebbe essere migrato ai test.)
wurtel,

Questo non risponde alla domanda originale, ma è ciò che le persone devono fare ora, quindi lo accetto in modo che sia la prima cosa che le persone vedranno. La "vera" risposta alla mia difficoltà (è instabile e stabile ma non in fase di test) è la risposta di Wurtel usando il download manuale dei nuovi bash - ????. Deb e dpkg -i.
John Lawrence Aspden,

Penso anche che questa sia la risposta per Ubuntu, ora che hanno spinto la loro correzione in modo corretto, e probabilmente per qualsiasi altra distribuzione basata su debian che è ancora mantenuta al punto in cui le persone hanno spinto le correzioni.
John Lawrence Aspden,

In realtà ci sono due bug di shellshock e la correzione per il secondo non è ancora arrivata a Jessie.
John Lawrence Aspden,

Questa è ancora una soluzione valida e rimarrà finché il team di sicurezza dei test Debian invierà aggiornamenti; potrebbero non averlo avuto in fase di test al momento della domanda OP. Un'altra opzione è impostare tutti gli utenti per utilizzare Dash. Questo è principalmente un problema del server e non
MGD_Toronto,

3

L'ho risolto sul mio Hackintosh da:

$ brew install bash

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash-4.3$ 

2
non dimenticare di installare la birra prima ...
Marcos Maciel,

1

Ho scritto un articolo su come farlo con apt-get su vecchie versioni di Ubuntu. Fondamentalmente aggiorni il tuo sources.list al più recente e quindi esegui apt-get update e upgrade bash. Puoi leggerlo passo per passo o copiarlo da qui .

Sommario:

sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list
sudo apt-get update
sudo apt-get install --only-upgrade bash

Leggi l'articolo se usi old-releases.ubuntu.com e non dimenticare che potresti voler cambiare di nuovo:

sudo sed -i 's/trusty/YOUR_OS_CODENAME/g' /etc/apt/sources.list

uh ... questo lascerà il tuo sistema con Trusty in sources.list. la prossima volta che aggiorni, il sistema passerà a Trusty. questo romperà SEMPRE il tuo sistema.
Strugee,

1

La versione fissa (vedi changelog ) per il pacchetto Bash è in Debian 8 (Jessie) ora (vedi informazioni sul pacchetto ), a partire dal 2014/09/26 14:18 UTC.

La seconda correzione, menzionata nei commenti seguenti, è anche nel repository Jessie ora. Non è necessario installare da unstable. Vedi il link delle informazioni sul pacchetto sopra.

Non è più necessario installare da unstable.

Corri:

# aptitude update

seguito da:

# aptitude upgrade

Quindi verificare che la vulnerabilità sia scomparsa (in una shell aperta di recente):

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'

Non risolve ancora il follow-up CVE-2014-7169.
Bob,

@Bob, penso che sia rilevante solo per Ubuntu? E presumibilmente Ubuntu lo ha già risolto.
John Lawrence Aspden,

@JohnLawrenceAspden Nope. Prova a correre env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("- se stampa still vulnerable, allora quest'ultimo non è ancora patchato. AFAIK, Jessie è ancora vulnerabile. Si noti che quel comando creerà un file denominato echonella directory corrente se ha esito positivo e sarà necessario eliminarlo prima di rieseguire il test.
Bob,

@Bob, non riesco a capirlo, cosa sta facendo il punto e virgola?
John Lawrence Aspden,

@Bob, ma qualunque cosa faccia, hai ragione che l'aggiornamento alla versione 4.3-9.2 in unstable lo ferma!
John Lawrence Aspden,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.