personaje, el 17 de junio a las 17:53 me escribiste:
> Hola gente bonita de la lista,
> 
>    Quería consultarles sobre el uso de printf y flía y la seguridad que
> acarrea su uso.
>    Si tengo un string sin caracteres de formato (o que asumo que no trae
> caracteres de formato) y siempre pongo el último de los parametros como 0,
> qué problema me puedo llegar a encontrar. El string es variable y su origen
> desconocido, ej:
> 
>     ...
>     char dest[2048+1];
>     snprintf(dest,2048,string_con_formato,0);
>     ...
> 
> string_con_formato viene desde el infinito y su contenido es desconocido.
> 
> Existe un string_con_formato que pueda comprometer la ejecucion de mi
> programa?

Sin responder tu pregunta, te pregunto yo a vos: qué tiene de malo
strncat()? Digo, para qué ponerse a analizar posibles vulnerabilidades de
algo potencialmente peligroso si esa función hace exactamente lo que
querés y no tenés vulnerabilidad posible (más allá de bugs en la
implementación de strncat() =).

Y, pensandolo brevemente, sí, tiene implicancias de seguridad, probá:

#include <stdio.h>

void f()
{
}

int main()
{
        char password[] = "ouch, mi password!!!";
        char string_con_formato[] = "%i%s";
        char dest[2048 + 1];
        snprintf(dest, 2048, string_con_formato, 0);
        fwrite(string_con_formato, 2048, 1, stdout);
        return 0;
}

Si no explota cuando lo corrés, probablemente puedas leer el texto "ouch, mi
password!!!" por algún lado...

-- 
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------
Your success is measured by your ability to finish things
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a