Supongamos que tenemos un código como este:
struct somedata {
int a;
int b;
};
struct somedata *data;
/* ... */
data = malloc(sizeof(struct somedata));
data->a = something;
Ahora, como puede ver, falta la comprobación del puntero NULO. La pregunta es: ¿tiene esto implicaciones de seguridad en caso de que malloc falle? Asumamos que el proceso que sale de SEGV por sí mismo no es un problema en este caso. ¿Hay alguna otra forma en que esto pueda ser un problema desde el punto de vista de la seguridad? La aplicación que contiene este código no es SUID o tiene privilegios elevados, pero procesa entradas externas, por lo que algunas partes de su memoria pueden ser controladas por el usuario.
P.S. Soy consciente de CWE-476 pero las implicaciones de seguridad se describen de una manera muy vaga ("En circunstancias y entornos muy raros, la ejecución del código es posible ", ¿qué circunstancias? ¿qué entornos? ¿Qué tan raros son los golpes de meteoros que son raros o raros una vez al año? Y me gustaría ver algunos Información más específica sobre cuál es la amenaza.