Re: BoF en inet_network(), afecta a Servidor DNS: BIND

En la pagina de BIND: BIND Vulnerabilities


Impact:

Applications linked against libbind which call inet_network() with untrusted inputs could lead to a denial-of-service or potentially code execution.

Note that none of the applications shipped with BIND 8 or BIND 9 call inet_network().


Veamos La pagina nos dice nuevamente lo mismo Podemos hacer un DoS al servidor BIND, o podemos ejecutar codigo arbitrareo en el equipo que aloja el servidor.


Ahora

Código:
Index: inet_network.c
diff -u inet_network.c:1.5 inet_network.c:1.6
--- inet_network.c:1.5 Wed Apr 27 04:56:21 2005
+++ inet_network.c Tue Jan 15 04:02:01 2008
@@ -84,9 +84,9 @@
}
if (!digit)
return (INADDR_NONE);
+ if (pp >= parts + 4 || val > 0xffU)
+ return (INADDR_NONE);
if (*cp == '.') {
- if (pp >= parts + 4 || val > 0xffU)
- return (INADDR_NONE);
*pp++ = val, cp++;
goto again;
}

Viendo las diferencias vemos que la version, 1.5 del archivo vulnerable es casi exactamente lo mismo solo movieron de lugar la siguiente Intruccion:

Código
 if (pp >= parts + 4 || val > 0xffU)
return (INADDR_NONE);

En la version Vulnerable esta dentro del if (*cp == '.') y la version NO vulnerable esta afuera antes de if (*cp == '.'), lo cual me indica que la clave de esto debe estar en saber manejar el formato de entrada con los Puntos '.'. Ya me he impreso el codigo fuente vulnerable y lo estoy analizando paso por paso, ya que no he podido encontrar un input que vulnere el codigo.

Comentarios

Entradas populares de este blog

Clave WPA2 por Defecto de equipos TotalPlay (Huawei HG8245H)

Cable modem Ubee - WPA2 y WPS por defecto