Un bug de NTFS permet de faire planter Windows 7 et Windows 8.1 depuis une page web
lun, 29/05/2017 - 11:43
Voilà qui rappelle le bon vieux temps de Windows 95 et Windows 98. A cette époque où DOS n'était pas très loin, le système de fichiers de Windows traitait de façon particulière certains fichiers.
Ces fichiers, de noms conventionnels, étaient des fichiers dits "spéciaux". Par exemple con pour console (A quoi pensiez-vous ? :-). Ce fichier représentait un périphérique matériel et en l'occurrence écrire dedans provoquait l'affichage de caractères dans une fenêtre DOS ouverte. Par exemple, pour afficher le contenu d'un fichier, on pouvait faire :
copy fichier.txt con:
Comme fichier spéciaux, il existait PRN, LPT1, etc.
A l'époque, une page web pouvait faire planter Windows 95 ou 98 avec un bel écran bleu de la mort (BSOD Blue Screen Of Death) en chargeant une image en local avec un nom de fichier spécial.
Par exemple <img src="c:\con\con" />
Microsoft avait corrigé ce problème \con\con.
Depuis cette époque, Windows a beaucoup évolué, c'est le moins que l'on puisse dire, mais sur le fond le même bug est toujours là, nous apprend Ars Technica. Aujourd'hui le système de fichiers de tous les Windows est NTFS et celui-ci reconnaît un fichier spécial : $MFT. Ce fichier contient des métadonnées utilisées uniquement par NTFS. Il y a un fichier $MFT à la racine de chaque volume. Ce fichier est invisible, et les applications ne peuvent normalement pas l'ouvrir.
Mais si le nom de ce fichier est utilisé comme un nom de répertoire, alors une page web peut placer Windows en situation de déni de service.
<img src="c:\$mft\un_fichier" />
Car quand le navigateur tente de charger cette image, Windows pose un verrou sur le fichier $MFT. Ainsi toute autre opération d'accès au système de fichier va se retrouver bloquée, à cause de m'impossibilité pour NTFS d'accéder aux métadonnées dont il a besoin. Il est alors nécessaire de redémarrer la machine.
Le problème se manifeste avec Firefox et Internet Explorer. Google Chrome quant à lui, n'essaie pas de charger le fichier.
Une société de sécurité russe, donne plus de détails techniques sur ce problème dans un billet écrit en russe.