Risque

Exécution de code arbitraire permettant à un utilisateur local l'accès aux privilèges root.

Systèmes affectés

SunOS, Solaris.

Résumé

Plusieurs débordements de piles ont été détectés dans les librairies et les programmes d'impressions de Solaris. Ils permettent à un utilisateur local d'exécuter du code et d'obtenir les privilèges root.

Des exploitations de ces vulnérabilités ont été largement diffusées sur internet.

Description

L'utilitaire lpset permet de mettre les informations de configuration de l'imprimante dans la base de données de configuration du système. Cet outil utilise la librairie libprint.so.2 qui présente une faille. Un utilisateur local mal intentionné peut exécuter du code grâce à un dépassement de mémoire de la commande lpset -r à une zone mémoire tampon habilement construite (l'option -r de lpset n'est pas documentée, donc peu connue).

Un autre débordement de pile est possible dans l'exécutable /usr/lib/lp/bin/netpr utilisée par les commandes d'impression pour envoyer les données vers une imprimante en passant par un réseau.

Il en est de même avec la commande beaucoup plus connue : lp suivie de l'option -d

L'utilisateur mal intentionné peut, dans chacun des cas, exécuter du code afin d'obtenir les privilèges root.

Contournement provisoire

Il est possible de supprimer le caractère suid, pour les commandes lpset et lp et netpr, mais cela aura pour effet d'en empêcher l'exécution par un utilisateur sans privilèges root.

      chmod a-s `find / -name lp -print`

      chmod a-s `find / -name lpset -print`

      chmod a-s `find / -name netpr -print`

Sous Solaris 2.6, 2.7 et 2.8, une solution temporaire mais pas totalement efficace (car elle peut être contournée à son tour) consiste à inhiber l'exécution de code situé dans la pile. Pour cela, ajoutez les variables suivantes dans le fichier /etc/system :

     set noexec_user_stack=1

     set noexec_user_stack_log=1

Redémarrer la machine après avoir effectué cette modification.

Solution

Il faut appliquer les correctifs de Sun disponibles aux adresses suivantes :

Ces correctifs, rectifient aussi d'autres erreurs dans l'implémentation de lp.

Documentation

Avis de sécurité de Sun concernant les débordements de pile des outils d'impression :

http://sunsolve.sun.com/pub-cgi/retrieve.pl?doctype=coll&doc=secbull/195&type=0&nav=sec.sba

Les avis de sécurité récents de Sun sont tous à cette adresse :

http://sunsolve.sun.com/pub-cgi/secBulletin.pl