Risque

  • Exécution de code arbitraire

Systèmes affectés

Serveurs FTP suivants :

  • FreeBSD 4.2 ;
  • Fujitsu UXP/V ;
  • HP-UX 11 ;
  • NetBSD 1.5 ;
  • OpenBSD 2.8 ;
  • SGI IRIX 6.5.x ;
  • Solaris 8.

Résumé

Un utilisateur distant mal intentionné peut, par l'emploi des caractères de substitution, exécuter du code arbitraire sur le serveur cible.

Description

Une fonction glob permet, lors de la consultation d'un serveur ftp, de mettre des caractères de substitution, tels que « * » ou « ˜ », dans les noms des fichiers.

L'utilisation de ces caractères permet, par exemple lors de l'utilisation de la commande « mget *.c », de récupérer tous les fichiers portant l'extension « .c ».

Une vulnérabilité dans la fonction glob(), lors de l'utilisation conjointe des caractères « * » et « ˜ », peut provoquer un débordement de pile. Un utilisateur mal intentionné effectuant une requête, avec des caractères de substitution judicieusement placés, peut provoquer l'exécution de code arbitraire avec les droits du serveur ftp (trop souvent root).

Solution

  • Procédure de mise à jour et correctif NetBSD :

    ftp://ftp.netbsd.org/pub/NetBSD/misc/security/advisories/NetBSD-SA2001-005.txt.asc
    
  • FreeBSD n'a pas diffusé de correctif mais FreeBSD 5.0-CURRENT et FreeBSD 4.2-STABLE du 10 avril 2001 n'est pas vulnérable.

    ftp://ftp.freebsd.org/pub/FreeBSD
    
  • Pour les autres plates formes, les correctifs ne sont actuellement pas disponibles.

Recommandation : Lancer le serveur ftp en tant qu'utilisateur afin de diminuer les droits.

Documentation