Risque

Exécution de commandes arbitraires.

Systèmes affectés

  • xpdf dans ses versions antérieures à 2.02p1 sur Unix ;
  • Acrobat Reader dans ses version antérieures à 5.07 sur Unix ;
  • une liste des distributions vulnérables est disponible sur le site du CERT/CC.

Résumé

Le format PDF est généralement présenté comme un format de document inoffensif, ce qui le rend particulièrement dangereux lorsqu'une vulnérabilité est découverte.

Une personne mal intentionnée peut fabriquer un document PDF contenant une URL astucieusement constituée qui, lorsque le lecteur choisit de la suivre, permet d'exécuter un code arbitraire en « script shell ».

Description

Le format PDF permet dans une certaine mesure l'interactivité avec le lecteur du document. En particulier, le format permet de définir des liens (URI) dans un document. La mise en œuvre de la gestion de cette interactivité dans les logiciels de lecture des fichiers PDF peut laisser, sous certaines conditions, la possibilité d'exécuter du code malveillant avec les privilèges de la victime.

Les versions du logiciel xpdf antérieures à 2.02pl1 sont vulnérables et permettent dans certaines configurations, l'exécution de « scripts shell ».

Les versions du logiciel Acrobat Reader antérieures à 5.06 sur Unix sont aussi vulnérables.

Remarque : la vulnérabilité exploite des possibilités du langage de commandes d'Unix (le shell). Elle n'est donc pas spécifique à une architecture particulière (microprocesseur, bibliothèque partagée, noyau, ...). Le fait que le code exécuté soit du script plutôt que du code assembleur rend cette vulnérabilité a priori très portable.

Contournement provisoire

On peut détecter un document PDF exploitant cette vulnérabilité avec la commande :

$ grep -a /URI document.pdf | perl -pe 's|.*/URI \(([^)]+)\).*|$1|'

Le résultat doit être une adresse électronique et ne doit pas contenir de commande du shell.

Solution

Des correctifs sont disponibles pour Acrobat Reader et xpdf.

Documentation