Risque

Exécution de code arbitraire.

Systèmes affectés

Tout les systèmes Microsoft Windows, avec des applications Office telles que Word ou Excel dans le cas présent.

Résumé

Si une librairie dynamique particulière se situe dans le même répertoire qu'un document Office quelconque, elle sera exécutée à condition que l'ouverture de ce document via l'explorateur lance l'application associée.

Description

Lors de l'ouverture d'un fichier par une application Office, si le système a besoin d'une librairie dynamique, il la recherche d'abord dans le répertoire de l'application, le répertoire où se trouve le fichier ouvert, puis dans les répertoires systèmes de Windows et enfin dans les répertoires indiqués par les chemins listés dans la variable PATH.

Les librairies msi.dll et Riched20.dll, sont normalement situées dans le répertoire winnt/system32 de Windows NT, et Windows/system dans le cas de windows 9x, et sont utilisées lors de l'exécution de WORD ou d'EXCEL (seulement msi.dll dans ce dernier cas).

Un utilisateur mal intentionné peut s'arranger pour qu'une de ces bibliothèques, qu'il aura modifiée au préalable en y mettant du code malicieux, soit située dans le même répertoire qu'un document que sa victime aura à ouvrir. Si l'application office n'est pas déjà ouverte, la librairie falsifiée sera chargée et exécutée.

Contournement provisoire

Le fait que l'application Office soit déjà ouverte empêche ce phénomène, car la librairie à charger en mémoire est déjà ouverte depuis le chemin nominal.

Il ne faut donc jamais ouvrir un document par un double-clique, ni par le menu contextuel de l'explorateur, mais exécuter l'application qui y est associée, et ouvrir le document à partir du menu fichier de l'application.

Désactiver, dans l'explorateur, l'association des fichier .doc et .dot avec WORD et .xls avec EXCEL.

Dans le menu affichage de l'explorateur ou du poste de travail, choisir options, dans la fenêtre qui s'ouvre, sélectionner l'onglet types de fichiers, enfin supprimer les entrées pour les types de documents indiqués.

Vérifier qu'il n'y a pas de fichier librairies .DLL dans des répertoires ne contenant que des données. Elle ne devraient pas y être.

Documentation

Aucune documentation additionnelle.