Friday, February 20, 2009

Ça fuzz toujours...

Barbusses, barbus, bonsoir.

Y'a quelques jours, un monsieur d'une grosse boite qui assemble des transistors, m'a contacté me demandant où se trouvait le rapport ainsi que le code pondu lors de mon Summer Of Code 2006 sur la sayku des piles IPv6 des OS... Surpris, je lui ai gentillement répondu que j'allais lui fournir le ouaraize quand j'aurais accès à ma vieille babasse piquante sur laquelle se trouve mon ancienne webpage...

Curieux, je me suis remis à modifier un peu mes fuzzers de l'époque qui m'avait permis de détecter quelques bugs exploitables sous minusk (hein spacemonkey? [0]) et sous *BSD. Après quelques minutes de fuzzage, je suis tombé sur un petit bug intéressant qui permet de dumper 4 bytes de la stack noyau avec un simple getsockopt. Le descriptif se situe ici. En bref, lorsque l'on fait un getsockopt avec un SO_BSDCOMPAT en option, le kernel descend en espace utilisateur une variable locale (un entier) non initialisée.

C'est une faille de merde mais ça montre que des fuzzers vieux de 3 années peuvent être re-utilisés pour trouver de nouvelles failles dans un code qui évolue tous les jours (noyau minusk). Je suis sûr qu'il doit en y avoir pleins d'autres du même genre avec des ioctls par exemple. ;-)

En fait, je ne savais pas mais mes joujous semblent bien servir.

Voilà, posté après le boulot [1], bon week-end, #@!

[0] Si, par malheur, tu lis ses lignes, bein j'espère que tu vas bien.
[1] Parce que y'en a qui surveille... ;-)

1 Comments:

Anonymous Anonymous said...

Je suis grillé ?

7:00 AM  

Post a Comment

<< Home