Risque

Un utilisateur local peut occasionner des :

  • pertes de données ;
  • dénis de service ;
  • élévations de privilèges.

Systèmes affectés

  • Mandrake ;
  • RedHat ;
  • OpenLinux.

Résumé

Une vulnérabilité du logiciel uudecode permet d'écraser des fichiers, conduisant dans certains cas à une élévation de privilèges.

Description

Le mél (SMTP) et les forums de discussion sur Internet (NNTP) ont été conçus pour échanger des messages textuels en anglais. De nombreux systèmes ont donc été conçus pour échanger des messages ne contenant que des caractères imprimables du jeux ASCII. En pratique 7 bits suffisent pour représenter chaque caractère (le bit de poids fort de chaque octet est nul).

Lorsqu'il faut échanger des textes avec des caractères accentués ou bien des pièces jointes (images, sons, ...) ces systèmes ne fonctionnent plus, car ils sont confrontés à des octets dont le bit de poids fort vaut 1.

Un contournement de cette limitation est d'encoder les données binaires en un ensemble de caractères ASCII avant de les émettre. Une des normes pour réaliser ce type d'encodage est uuencode (Unix to Unix encode).

Par exemple, l'encodage d'une image :

begin 644 toto.gif
M1TE&.#EA=P!/`/<``.(M,>,N,.,N,M\N,N$O,>(Q-.(Q,N,R,^(I+MPH+N(J
[...]
ME!`;%1([L4U1L1:;%!B;L46QL1P;%![[L4;A3"*+%2%;LCMQLBA[$RJ[LDI!
8LBY[L3`;LQK[$#8*>[,XF[,ZZQ`!`0`[
`
end
toto.gif désigne le nom du fichier à créerlorsque la pièce jointe sera décodée par le logicieluudecode.

Le paquetage GNU Sharutils est un ensemble de logiciels destinés à faire des archives shell pour la transmission de données par le mél. Parmis les logiciels de ce paquetage, on trouve une implémentation du logiciel uudecode.

Cette implémentation d'uudecode ne vérifie pas, avant d'écrire le fichier décodé sur le disque, si le fichier existe déjà et notamment s'il n'est pas un lien ou un tube nommé.

Ceci permet une attaque classique d'écrasement de fichiers en suivant les liens symboliques. Cette technique peut permettre dans certains cas une élévation de privilèges d'un utilisateur local.

D'autres implémentations de uudecode peuvent être touchées par cette vulnérabilité. La page du CERT Coordination Center précise quelles sont les implémentations vulnérables connues.

Solution

Appliquer le correctif proposé pour les implémentations vulnérables. Les avis de sécurité suivants précisent des implémentations à corriger :

RedHat
avis RHSA-2002:065
OpenLinux
avis CSSA-2002-040.0
Mandrake
avis MDKSA-2002:052

Documentation