«Shellshock» touche LINUX UNIX et OS X

:) Hye ! L'info n'était pas encore sortie ! ;)

Merci à toi :up:

Punaises ! Mon mac est totalement à jour et : " vulnérable !!! " ( 10.9.5 )

Disons que c'est toi qui étais en retard. :D

Info sortie par Stéphane Moussie | 25 septembre 2014 | 10:57
 
Bonjour tout le monde,

en lisant les nouvelle Européenne, ce matin va Internet (Je vie de l'autre coté de L'océan), je suis tomber sur cet article : http://www.atlantico.fr/decryptage/shel ... 83080.html

Cela concernerait un Bug, sur Mac, via Internet, je ne sais pas si je suis dans la bonne section pour mon Topic ?

Qui aurait la gentillesse de voir ce petit détail de plus près ? Et, de nous donner qql infos, un grand merci.

(Ps, ici, ou je suis actuellement, sud de la Colombie, Internet via un modem usb, vitesse inexistante !!! Je suis dans l'incapacité de surfer pour me trouver les infos. Il me faut 3 minutes pour ouvrir une page de feuille de choux officiel, style Figaro, etc ...C'est la raison de vous demandez un peu plus d'infos, étant dans l’impossibilité avec ma connexion Internet de le faire
icon_evil.gif
icon_evil.gif
)

Merci pour votre collaboration, en plus je crois que cette annonce peu concerner plusieurs personnes.

Cordialement.
Lobo
 
Dernière édition:
Sud de la Colombie... sympathique, ça.

AU passage : je te conseillerais d'utiliser dans certains cas des navigateurs en mode texte, comme eLinks ou Lynx.

On en a pas mal parlé dans ce forum : c'est un bug de bash donc qui concerne tous les UNIX (et même Windows, j'ai testé ;)) et dont le surnom est Shellshock.
Apple a posté un patch pour Mavericks, Moutain Lion et Lion. C'est quand même surtout gênant pour des serveurs, plus que des ordinateurs personnels sans services particuliers (Web, notamment).
 
Hola,

oui, c'est bien sauvage le Putumayo, de plus suis dans le réserve du Rio Orteguaza, avec les Indiens
Coreguaje. Pas de centre Apple dans le coin, lol ... Mais des FARC ...

Merci beaucoup Bompi pour les précisions, c'est chouette :up::up:

Entre temps, un ami m'a informer que ce problème avait été résolu par Apple, le 29 septembre, donc hier, vont vite chez Pomme :D

On va dire RÉSOLU, lol ...

Ton conseil au passage ... trop technique pour moi, novice. Est ce que ça concerne ma manière d'écrire, liens sur le forum, ou dans ma vie en général, je te suis pas ... Je donne changer ou me prévenir de qql choses ?

Merci l'ami.

Cordialement.
Lobo
 
Le correctif est diffusé par Apple pour Lion, Mountain Lion et Mavericks

Quelqu'un saurait comment récupérer une version patchée du Bash pour l'installer sur SnowLeopard (voir Leopard ou Tiger)?
 
Le correctif est diffusé par Apple pour Lion, Mountain Lion et Mavericks

Quelqu'un saurait comment récupérer une version patchée du Bash pour l'installer sur SnowLeopard (voir Leopard ou Tiger)?
Il "suffit" de télécharger les sources de bash, d'y appliquer le patch idoine (ou de télécharger des sources déjà patchées) et de recompiler.
Je n'ai pas mon Mac sous la main (sur lequel j'ai la version 4.xx de bash) mais, de mémoire, c'est comme d'habitude (dans Terminal, of course) :
- avoir les outils de développement
- désarchiver l'achive
- ouvrir Terminal
- aller dans le dossier des sources de bash
- lancer ./configure
- puis make (ou make all)
- puis sudo make install
Cette dernière commande installera bash dans /usr/local, comme il se doit. Cela permettra de vérifier que le shell se lance bien.
Une fois rassuré, on recopie à la mimine l'exécutable, la page de manuel etc. à la place de celui livré par Apple.

Autre méthode plus orthodoxe : récupérer les sources de bash pour le système voulu sur le site des sources d'Apple (ici). Récupérer le patch puis l'adapter aux sources.
Recompiler, tester et installer.
Je risque de devoir le faire pour SL ; si c'est le cas, je posterai la liste des commandes.

Quant au patch, il faut quand même vérifier qu'il est vraiment efficace ; j'ai cru comprendre que les premiers colmataient un bout de brèche mais pas toute la brèche.
 
Salut remy.

En variante de la méthode de bompi, un procédé d'après Topher Kessler (le mentor :D de François :coucou:) remis en Français par ma pomme.

♤

[VERBOSE]

  1. À partir de la page ☞developer.apple.com/downloads/index.action☜, p. 10/13 précisément, télécharge et installe la version Xcode 3.2.6 pour «Snow Léopard 10.6.8» et lance une fois l'application avant de la fermer, au cas où il y aurait un agrément des termes de la licence à passer - l'adresse est : /Developer/Applications/Xcode.app.

  2. Lance le «Terminal» [après chaque commande, attends chaque fois le ré-affichage de l'invite de commande de type remy$, car il y a des fois où le processus dure] et fais un copier-coller de :

    Bloc de code:
    curl https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf -

    et ↩︎ --> ce qui te fait télécharger et désarchiver le dossier des sources de bash 3.2 qui va se retrouver automatiquement dans l'espace racine de ton Home_Directory sous forme d'un répertoire intitulé bash-92.

  3. Par la commande :

    Bloc de code:
    cd bash-92/bash-3.2

    et ↩︎ --> tu te loges dans le sous-répertoire bash-3.2 du répertoire bash-92.

  4. Par la commande :

    Bloc de code:
    curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052 | patch -p0

    et ↩︎ --> tu télécharges et appliques le patch 052

    puis par la commande :

    Bloc de code:
    curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-053 | patch -p0

    et ↩︎ --> tu télécharges et appliques le patch 053

    et par la dernière commande :

    Bloc de code:
    curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-054 | patch -p0

    et ↩︎ --> tu télécharges et appliques le patch 054.

  5. par la commande à présent :

    Bloc de code:
    cd .. ; xcodebuild

    et ↩︎ --> tu lances la compilation de la version patchée par Xcode (d'où la nécessité de l'avoir installé) après t'être délogé du sous-répertoire bash-3.2 pour te re-loger dans le répertoire parent bash-92. Ça demande un peu de temps. Tu devrais avoir un message de succès final = ** BUILD SUCCEEDED **. Tu as désormais 2 exécutables patchés : bash et sh (son auxiliaire) à l'adresse : Home_Directory/bash-92/build/Release/.

  6. par la commande double :

    Bloc de code:
    sudo mv /bin/bash /bin/bash~orig ; sudo mv /bin/sh /bin/sh~orig

    et ↩︎ (avec authentification par le mot-de-passe admin à la clé) tu renommes dans /bin les exécutables originels non patchés bash et sh en bash~orig et sh~orig.

  7. par la commande double :

    Bloc de code:
    sudo cp build/Release/bash /bin ; sudo cp build/Release/sh /bin

    et ↩︎ (sans mot-de-passe - délai de grâce de 5' au statut sudoer) tu copies directo (car tu es toujours logé dans le répertoire parent bash-92 où tu es remonté) tes exécutables bash et sh dans /bin.

  8. Tu peux quitter le «Terminal» pour le relancer : l'affichage de l'invite de commande de type : remy$ est la preuve que tu as un shell d'accès qui marche. Si tu passes à présent la commande :

    Bloc de code:
    env x="() { :;}; echo il serait présomptueux de dire que" bash -c "echo ça roule ma poule"

    et ↩︎ --> tu devrais lire : ça roule ma poule et être content :D

[/VERBOSE]

♧

J'ai testé cette méthode avec plein succès sur ma machine virtuelle «Snow Léopard 10.6.8» motorisée par «Parallels Desktop». Mais j'ai testé également la méthode :

Bloc de code:
brew install bash

(qui implique évidemment l'installation préalable de brew et des Xcode developer tools) et je peux te dire que du point de vue de la rapidité et de l'absence de prise de tête il n'y a pas photo comme on dit. Sans compter qu'il s'agit de la version de bash : 4.3.27 plus évoluée que la 3.2 et qui n'a pas besoin d'être patchée [pour les détails, voir le fil : ☞Les tribulations de poco☜ --> il s'avère critique de bien avoir les Xcode Developer Tools installés, afin que l'exécutable bash soit bien créé --> voir pour les télécharger la page Apple précitée : choisir, page 11/13 les Xcode 3.2.2 Developer Tools.]

NB. Pour installer brew, copier-coller dans une fenêtre du «Terminal» :

Bloc de code:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

et ↩︎ --> patienter un peu jusqu'au ré-affichage du prompt. Personnellement, je conseillerais avant toute utilisation de brew, de passer la commande :

Bloc de code:
brew update

et ↩︎ --> de la patience encore, ça met à jour les formulae (comme ils disent joliment dans leur Latin)... En faisant le test, je m'aperçois qu'il y en a une nouvelle de bash, qui permet d'installer la version 4.3.28.

♡
 
Dernière édition par un modérateur:
On ne te remerciera jamais assez pour tes explications et aides dans ce style toujours aussi prolixe!
:up:
 
Lorsque je suis pas à pas (comment faire autrement) tes instructions, tout se déroule comme prévu jusqu'à l'étape 5. Mais pour l'étape 6, lorsque je saisis le mot de passe admin, j'ai systématiquement la réponse "aliboron is not in the sudoers file. This incident will be reported.". Et, bien entendu, lorsque je lance le test, ça continue à me dire qu'il serait présomptueux, etc.

Peut-être faut-il faire la manip avec un compte admin ? Je vais voir…
---------------

Aprés essai sur le compte admin, et quelques refus parce que les patches étaient déjà appliqués, le Terminal est maintenant bloqué même après redémarrage du Mac sur :

L
Bloc de code:
ast login: Thu Oct  2 07:44:18 on console
login: /bin/bash: No such file or directory

[Opération terminée]

Ça ne réagit plus à rien… :confused: :confused: :confused:
 
Dernière édition:
Il faut être sur un compte administrateur pour invoquer la commande sudo.

---------- Nouveau message ajouté à 11h17 ---------- Le message précédent a été envoyé à 11h14 ----------

@ Macomaniac

Tu parles de Xcode 3.2.2 mais la dernière version pour Snow Leopard est la 3.2.6.

Y a-t-il une contre-indication ?
 
Bonjour Bernard.

Mais pour l'étape 6, lorsque je saisis le mot de passe admin, j'ai systématiquement la réponse "aliboron is not in the sudoers file. This incident will be reported.". Et, bien entendu, lorsque je lance le test, ça continue à me dire qu'il serait présomptueux, etc.

Peut-être faut-il faire la manip avec un compte admin ? Je vais voir...

☝︎:D Rapporté au modérateur-en-chef pour tentative d'usurpation statutaire... Je ne devrais pas, mais c'est plus fort que moi... C'est un mot-de-passe admin qu'il te faut renseigner dans le «Terminal si tu veux passer une commande sudo (i.e. en droits root), sinon ta prétention est rejetée --> il te faut donc te loger dans une session admin pour passer les commandes des rubriques 6 et 7 - et ça se comprend aisément, car il s'agit d'éditer chaque fois (soit en intitulé, soit en existence) des exécutables du répertoire /bin sur lesquels seul root est en permission d'écriture.

À supposer, donc, que tu te loges illico dans une session admin (ce qui laisse supposer que par prudence tu utilises couramment une session standard), tu n'auras aucun mal à passer la commande 6 qui a pour objet un seul répertoire de destination (/bin) en 'accès commun' pour les 2 comptes. Mais il n'en irait pas de même pour la commande 7, car si le répertoire de destination est toujours le même dossier-système /bin qui a la même adresse quelque soit le compte ouvert, le répertoire source, lui, est spécifique à la session non-admin à la racine du Home-Directory de laquelle se situe le dossier bash-92 dans lequel la commande te suppose logé - ce qui est impossible d'une autre session. Si donc tu te hâtais de basculer dans une session admin pour passer la commande 6 préliminaire, laquelle renomme le programme bash qui est le shell d'accès courant des utilisateurs, il s'ensuivrait après l'échec de remplacement par le shell patché verrouillé dans le Home_Directory de la session standard que tu te retrouverais avec un «Terminal» dépourvu de shell : bash opératoire.

  • Afin d'éviter cette anicroche, et pouvoir passer aussi une commande analogue à 7 dans la session admin, je t'invite donc, à partir de ta session standard et avant de basculer dans ta session admin, à faire une copie du dossier bash-92 qui existe à la racine du Home_Directory du compte standard dans le dossier Partagé des Utilisateurs afin qu'il soit en 'accès libre' par la commande :

    Bloc de code:
    cp -R ~/bash-92 /Users/Shared

    et ↩︎ --> ainsi, ce dossier qui contient les 2 exécutables patchés bash et sh te sera librement accessible depuis la session admin sans être verrouillé dans le Home_Directory interdit d'accès de ta session standard.


    ♤

  • Cela fait, tu ouvres ta session admin, et dans son «Terminal» tu vas pouvoir sans peine commander l'identique de la commande 6 -->

    Bloc de code:
    sudo mv /bin/bash /bin/bash~orig ; sudo mv /bin/sh /bin/sh~orig

    et ↩︎ --> demande de password --> là la frappe en aveugle de ton mot-de-passe admin suivie derechef de ↩︎ va être honorée.

    ----------​

  • Ensuite, tu enchaînes par une modification dans l'adresse de source pour donner un analogue de la ci-devant commande 7 -->

    Bloc de code:
    sudo cp /Users/Shared/bash-92/build/Release/bash /bin ; sudo cp /Users/Shared/bash-92/build/Release/sh /bin

    et ↩︎ (sans mot-de-passe requis dans un délai de 5' par défaut préservant le statut sudoer).

    ----------​

  • Tu rétablis enfin les propriétés d'utilisateur et de groupe sur les 2 fichiers qui ont été virées par ta copie dans le dossier 'Partagé' à aliboron:staff en lieu de root:wheel - ce par la double commande :

    Bloc de code:
    sudo chown 0:0 /bin/bash ; sudo chown 0:0 /bin/sh

    et ↩︎ et ça devrait être bon.

    ♧

Si tu fais dans le Finder : ⌘⇧G (cmd maj G) et renseignes /bin dans le champ de saisie et presses le bonton 'Aller', tu dois pouvoir vérifier dans la fenêtre du répertoire /bin qui s'ouvre si tout est en ordre = 2 fichiers renommés (bash~orig et sh~orig) et 2 fichiers patchés existants (bash et sh).

Si tu quittes le «Terminal» et si tu le relances, tu dois avoir toujours l'invite de commande de type : bernard$, signe que tu as un shell d'accès opérationnel. Tu peux passer la commande 8 pour vérifier si le patch est en place.

-----♡


---------- Nouveau message ajouté à 08h33 ---------- Le message précédent a été envoyé à 08h20 ----------

@ Macomaniac

Tu parles de Xcode 3.2.2 mais la dernière version pour Snow Leopard est la 3.2.6.

Y a-t-il une contre-indication ?

Salut Moon. À mon avis, toutes les versions de Xcode de type 3.2 marchent sous «Snow Léopard 10.6.8», les plus anciennes comme la dernière adaptée (3.2.6) - ce pour compiler les sources de bash. La version 3.2.2 que j'ai évoquée cible plus spécifiquement les Xcode Developer Tools qui sont requis, eux, si l'on se sert du programme brew (une problématique parallèle). Mais là encore, je jurerais que toutes les versions de type 3.2 de ces Tools sont fonctionnelles sous «Snow Léoapard 10.6.8».

[perso, j'ai utilisé Xcode 3.2.6 pour la compilation sous «Snow» et les Tools 3.2 pour brew.]
 
J'ai suivi ton pas à pas d'hier soir (OS X _ GCC Installer m'a paru abscons): j'ai dû réinstaller XCode 3.2.6 (sans les iOS SDK, quand même) que j'avais viré l'an dernier de mon SL,

et bash est maintenant en 3.2.54 sur mon SL (pour 3.2.53 avec le patch Apple sur mon Mavericks) : ça roule ma poule !


Je n'ai pas trouvé "joli" :rolleyes: le dossier bash-92 dans ma Maison, alors je l'ai déplacé dans Macintosh HD :
ce dossier a-t-il encore une utilité une fois le patch appliqué ??
(les fichiers modifiés dans /usr et /bin me semblent être les mêmes que ceux du patch Apple)
 
(je réponds au post de macomaniac : )
Certes. Mais autant prendre la dernière si on a l'occasion : il y a toujours un petit bug à corriger...

Par ailleurs, un petit raccourci dans ta proposition ci-dessus : pas besoin de quitter la session graphique "Aliboron" pour aller dans la session graphique "admin".
Une fois les fichiers copiés dans la section partagée, on peut passer à une session "admin" dans le Terminal en faisant : "su - admin" et en tapant le mot de passe de l'utilisateur admin à l'invite.
On est alors dans un shell en tant qu'admin.
Une fois fini, on fait Ctrl-D ou exit et on se retrouve dans son petit shell à soi.

---------- Nouveau message ajouté à 10h00 ---------- Le message précédent a été envoyé à 09h58 ----------

OS X GCC Installer absons ? :)

Je l'ai téléchargé et c'est un petit paquetage assez simple. Je vais faire le test ce soir ;)

PS : Bon. Quand même : il ne faut pas trop psychoter sur ce bug.
 
Merci à Macomaniac et à Bompi.

N'étant pas un expert du Terminal, je regarderai ça à tête reposée (?) ce soir.

En effet, j'ai fait les manips une première fois dans mon compte habituel (non admin) et, butant sur le mot de passe, je me suis douté qu'il eût fallu le faire dans un compte avec des droits d'administrateur.

Après avoir copié le dossier "bash-92" dans la session admin (j'avais prévu le coup) j'ai relancé toute la procédure. Evidemment, ça un peu couiné, particulièrement au point 5 (prétextant que c'était déjà installé, si j'ai bien compris les messages). Et depuis, le Terminal était bloqué sur l'instruction que j'indiquais plus haut, même après fermeture de la session admin et même après redémarrage du Mac... Impossible de saisir quoi que ce soit, pas de retour de l'invite...
 
C'est un peu embêtant : on dirait bien que tu n'as plus de bash sur le système... Aaargl.

Je te conseillerais de ne pas redémarrer ta machine ni fermer ta session. Pour parer au pire, tu devrais créer un autre compte admin, et lui affecter dans les options avancées du compte, un autre shell (prend /bin/ksh ou /bin/zsh ou /bin/sh). Les options avancées s'obtiennent, dans la section Comptes des préférences systèmes, en faisant un clic droit sur un identifiant.

J'avais oublié de le mentionner : en général sur mes postes je crée un autre compte administrateur avec un autre shell, au cas où mes expérimentations tournent mal... Ici, ça pourrait être utile, au vu des manipulations effectuées !

---------- Nouveau message ajouté à 15h52 ---------- Le message précédent a été envoyé à 15h30 ----------

Je me permets de revenir une nouvelle fois sur le sujet.

Étant en train de faire un petit mode opératoire pour SL, je suis allé sur la page du site des sources d'Apple.
Et là, nous voyons une floppée de versions.

Dans la version bash-92.1.2 on voit des fichiers du 29 septembre 2014, ce qui semble convenir. En regardant le fichier plist inséré dans l'archive, on lit :
Bloc de code:
                <string>Update to patch 52 for CVE-2014-6271</string>
                <string>Wrap/unwrap function exports/imports</string>
                <string>Update to patch 53 for CVE-2014-7169</string>
À première vue (CVE-2014-6271, CVE-2014-7169), c'est bien ce que l'on cherche.

Je vais voir si cela suffit (et qu'il n'y a pas besoin de patcher en plus (il manque le 54 quand même)).
 
Dernière édition:
En effet, j'ai fait les manips une première fois dans mon compte habituel (non admin) et, butant sur le mot de passe, je me suis douté qu'il eût fallu le faire dans un compte avec des droits d'administrateur.

Après avoir copié le dossier "bash-92" dans la session admin (j'avais prévu le coup) j'ai relancé toute la procédure.
Tu dis avoir copié le dossier,

alors, si bompi ne parvient pas à trouver une solution,
tu pourrais peut-être effacer la copie de bash-92 dans ta session admin, passer transitoirement ta session habituelle en admin, et y relancer la procédure
(si ta session habituelle a bien un mot de passe).
 
alors, si bompi ne parvient pas à trouver une solution,
tu pourrais peut-être effacer la copie de bash-92 dans ta session admin, passer transitoirement ta session habituelle en admin, et y relancer la procédure
(si ta session habituelle a bien un mot de passe).
Oui, c'est une idée. Mais le problème, c'est que le Terminal est complètement bloqué, il reste sur les trois lignes citées précédemment et rien ne l'émeut. Bon, ça va peut-être me faire l'occasion de réinstaller OS X, si je n'ai rien de mieux à faire ce week-end… :(

Par contre, je peux au moins "rassurer" Bompi sur un point : aucun souci pour redémarrer (ou éteindre puis démarrer) mon Mac. Inconscient que je suis, je l'avais déjà fait avant (et je l'ai refait depuis).