17Fermer19
PolluxLe 20/04/2007 à 15:32
ExtendeD (./16) :
Pollux (./11) :
un programme de haut niveau genre java qui utilise des tableaux peut être victime de buffer overflows (sauf que ça ne fera pas planter le programme, mais ça reste une vulnérabilité)

Bah ca finit par une java.lang.ArrayIndexOutOfBoundsException confus

Non, je parlais du cas où on ne sort pas du tableau Java (donc pas d'exception), mais où on écrit qd même un peu plus loin que là où on devrait... Exemple extrême : un émulateur qui émule un programme victime d'un buffer overflow. Exemple plus courant :
  char[] mp3_file = readFile("dansedescanards.mp3");
  long position_id3 = findID3Tag(mp3_file);
  string infos_mp3 = readHTTP("http://plop.com/id3/infos?nom=dansedescanards");
  if (infos_mp3.contains(caractères interdits))
    throw "pas bien";
  mp3_file.copy(position_id3, infos_mp3);
  replaceFile("dansedescanards.mp3", mp3_file);

Si plop.com s'amuse à t'envoyer des infos plus grandes que la taille normale d'un ID3, pouf tu commmences à écraser le reste du fichier...
Evidemment selon le niveau où tu te places tu peux ne pas appeler ça un buffer overflow, mais ça reste fondamentalement la même chose et dans tous les cas c'est une vulnérabilité ^^