Se ha corregido una vulnerabilidad en procmail que podría causar una denegación de servicio y potencialmente ejecutar código arbitrario de forma remota.
procmail, es un agente de correo que es usado para filtrar los mensajes entrantes, tanto por motivos de SPAM como por, simplemente, enviar los correos al buzón de acuerdo a una reglas predeterminadas y programadas por el usuario mediante su propio lenguaje de programación.
El fallo ha sido encontrado por Jakub Wilk y se trata de un desbordamiento de memoria basada en montículo (Heap-based overflow). El error está localizado en la función loadbuf del archivo fuente formisc.c.
Como podemos observar, en el parche:
diff --git a/src/formisc.c b/src/formisc.c index d91b227..6c7594b 100644 --- a/src/formisc.c +++ b/src/formisc.c @@ -103,7 +103,7 @@ void loadsaved(sp)const struct saved*const sp; /* load some saved text */ } /* append to buf */ void loadbuf(text,len)const char*const text;const size_t len; -{ if(buffilled+len>buflen) /* buf can't hold the text */ +{ while(buffilled+len>buflen) /* buf can't hold the text */ buf=realloc(buf,buflen+=Bsize); tmemmove(buf+buffilled,text,len);buffilled+=len; }
Si leemos el código, la función posee dos parámetros, text y len, que suponemos es un puntero a una zona de memoria (const char*) con el texto a almacenar y su tamaño (size_t). La función compara el tamaño del bufé que ya posee, buffilled, más el tamaño del texto que le llega, len, y si es superior a la capacidad del bufé, entonces procede a ampliarlo.
formail: CVE-2017-16844: heap-based buffer overflow in loadbuf()
Dejar un comentario