Aujourd'hui, une vulnérabilité (Réf. Lexsi 12225) annoncée comme un déni de service distant touchant les versions Vista, Seven et 2008 de Windows a été publiée par un chercheur en sécurité. Celle-ci affecte le pilote pour le protocole SMBv2, nouvelle mouture du bien connu SMB. En modifiant un simple paramètre d'une requête SMB de type "négociation de protocole", un attaquant distant pourrait provoquer un BSOD.

Mais regardons les choses de plus près ...

L'exécution du code d'exploitation contre une de nos machines de test provoque l'écran bleu suivant :

Nous notons que le pilote impacté est bien srv2.sys, et que l'instruction provoquant le PAGE_FAULT est située à l'adresse 0x8E18A749. Si l'on ouvre le-dit fichier à l'aide d'un désassembleur, nous observons le code suivant :

On peut voir que la valeur modifiée dans le paquet (ici eax) est alors directement utilisée comme indice d'un tableau de fonction ! La vulnérabilité pourrait alors être exploitée afin de dériver le flot d'exécution vers un espace sous notre contrôle, permettant ainsi l'exécution de code arbitraire à distance, avec les privilèges du noyau ...

Il est malheureux que le-dit chercheur n'ait pas adopté les pratiques du responsible disclosure, en remontant la vulnérabilité à Microsoft sans l'ébruiter, afin de donner le temps à l'éditeur de la corriger avant une éventuelle exploitation dans la nature. Peut-être a-t-il jugé qu'un simple déni de service n'était pas "si" critique ...