... il y a quand même quelque chose que j'ai du mal à comprendre. D'abord, j'ai vu que la correction consistait à empêcher de définir du code après la fonction, comme ceci:
env mafonction='() { echo "bonjour vous"; }; echo "voici shellshock"'
ce qui doit donner un message d'erreur. Jusque là, d'accord. Mais ce que j'ai du mal à saisir, c'est: pourquoi cette tournure est dangereuse? Bon, hormis le fait que c'est une construction douteuse, qu'est-ce qui fait que
env mafonction='() { echo "bonjour vous"; }; <code malfaisant>' ...
est plus dangereux que
env mafonction='() { echo "bonjour vous"; <code malfaisant>; }' ...
? Est-ce que ça tient de l'exécution, que j'appellerais non gardée, du code malfaisant dans le premier cas?
J'ai aussi du mal à concevoir en quoi cette... "faille" serait plus conséquente que HeartBleed étant donné que tout code arbitraire ne peut que se dérouler avec les privilèges du compte sous lequel le processus appelant s'exécute, exact?
Si quelqu'un veut bien éclairer ma lanterne, ce serait très gentil.
# Je pense avoir bien lu la dépèche mais...
Posté par FantastIX . En réponse à la dépêche Une faille nommée « shellshock ». Évalué à 6. Dernière modification le 29 septembre 2014 à 12:35.
... il y a quand même quelque chose que j'ai du mal à comprendre. D'abord, j'ai vu que la correction consistait à empêcher de définir du code après la fonction, comme ceci:
env mafonction='() { echo "bonjour vous"; }; echo "voici shellshock"'
ce qui doit donner un message d'erreur. Jusque là, d'accord. Mais ce que j'ai du mal à saisir, c'est: pourquoi cette tournure est dangereuse? Bon, hormis le fait que c'est une construction douteuse, qu'est-ce qui fait que
env mafonction='() { echo "bonjour vous"; }; <code malfaisant>' ...
est plus dangereux que
env mafonction='() { echo "bonjour vous"; <code malfaisant>; }' ...
? Est-ce que ça tient de l'exécution, que j'appellerais non gardée, du code malfaisant dans le premier cas?
J'ai aussi du mal à concevoir en quoi cette... "faille" serait plus conséquente que HeartBleed étant donné que tout code arbitraire ne peut que se dérouler avec les privilèges du compte sous lequel le processus appelant s'exécute, exact?
Si quelqu'un veut bien éclairer ma lanterne, ce serait très gentil.