[ Home | Liste | F.A.Q. | Risorse | Cerca... ]


[ Data: precedente | successivo | indice ] [ Argomento: precedente | successivo | indice ]


Archivio: Ottobre 2004 ml@sikurezza.org
Soggetto: Re: [ml] Integer overflow
Mittente: twiz
Data: Thu,  7 Oct 2004 15:10:31 +0200 (CEST)
On Thu, 7 Oct 2004, Yvette Agostini wrote:

> http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/dangers-c.html

Un esempio proposto non e' del tutto preciso :

 char *buf;
 int i, len;

 read(fd, &len, sizeof(len));

 /* OOPS!  We forgot to check for < 0 */
 if (len > 8000) { error("too large length"); return; }

 buf = malloc(len);
 read(fd, buf, len); /* len casted to unsigned and overflows */

Il prototipo di malloc e' :

   void *malloc(size_t size);

quindi len viene gia' trattata come unsigned nell'allocazione (che, molto
probabilmente, fallira', ritornando NULL -> da qui il segfault nella
read successiva).

Sempre relativamente ai paper sugli integer overflow (oltre agli 'n'
esempi di exploit/vulnerabilita' su int che puoi cercare in giro) su
phrack60 e' uscito l'articolo di blexim - Basic Integer Overflow (o
qualcosa di molto simile, non ricordo :) ).


    twiz




[ Home | Liste | F.A.Q. | Risorse | Cerca... ]

www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005