La saturation de mémoire, c'est pas trés aléatoire à provoquer, à mon sens :)
La vrai question est de savoir ce que la libération d'une zone mémoire peut provoquer. Prenons une variable qui serait touché par ce "nettoyage", sous quelle condition peut t'on exploiter ça ?
A part un pointeur à moitié effacé, qui pointerai du coup sur une autre zone, qui serait théoriquement sous le controle du pirate, je voit pas trop. Et, ça ne me semble pas être trés trivial.
Et sauf erreur de ma part, c'est suivi par un appel à fatal, qui se traduit par un message d'erreur et un exit, non ?
Donc, il faut réussir à corrompre la section .dtors ( éxecuté à la fermeture, pour les programmes compilés par gcc ) pour exploiter ça, ou réussir à corrompre l'appel à fatal, ou à exit, ou à une fonction, ce qui me semble donc être plus facile à exploiter par la suite.
Si jamais on arrive justement à corrompre un de ces éléments, alors, la faille est dans la corruption, et pas dans le crash. Car la charge se déclencherai alors lors d'une extinction ( exemple, un upgrade ), ce qui est tout aussi mauvais.
J'ai bon, ou je raconte des conneries ?
J'ai peut être oublié quelque chose dans mon raisonnement.
[^] # Re: Faille sendmail et vulnérabilité OpenSSH
Posté par Misc (site web personnel) . En réponse à la dépêche Faille Sendmail et vulnérabilité OpenSSH. Évalué à 4.
La vrai question est de savoir ce que la libération d'une zone mémoire peut provoquer. Prenons une variable qui serait touché par ce "nettoyage", sous quelle condition peut t'on exploiter ça ?
A part un pointeur à moitié effacé, qui pointerai du coup sur une autre zone, qui serait théoriquement sous le controle du pirate, je voit pas trop. Et, ça ne me semble pas être trés trivial.
Et sauf erreur de ma part, c'est suivi par un appel à fatal, qui se traduit par un message d'erreur et un exit, non ?
Donc, il faut réussir à corrompre la section .dtors ( éxecuté à la fermeture, pour les programmes compilés par gcc ) pour exploiter ça, ou réussir à corrompre l'appel à fatal, ou à exit, ou à une fonction, ce qui me semble donc être plus facile à exploiter par la suite.
Si jamais on arrive justement à corrompre un de ces éléments, alors, la faille est dans la corruption, et pas dans le crash. Car la charge se déclencherai alors lors d'une extinction ( exemple, un upgrade ), ce qui est tout aussi mauvais.
J'ai bon, ou je raconte des conneries ?
J'ai peut être oublié quelque chose dans mon raisonnement.