Falhas do tipo CWE-188
2 resultadosDependência de Layout de Dados em Memória
Fraqueza onde o código assume um layout específico de dados ou estruturas em memória (ordem, tamanho, alinhamento) sem validação explícita. Quando esse layout muda — por recompilação, otimizador diferente, arquitetura distinta ou versão de linguagem — o código quebra ou se comporta de forma insegura, acessando dados errados ou fora dos limites.
Um programa em C lê um arquivo binário com estrutura esperada e acessa campos direto por offset fixo (ex: char *ptr = buffer + 8 para 'userid'). Se a estrutura for recompilada com padding diferente ou em outra arquitetura, o offset aponta para dado errado, possibilitando bypass de validação ou corrupção de dados.
Use serializadores robustos (protobuf, msgpack) em vez de layouts binários rígidos. Em C, force alinhamento explícito com `#pragma pack` ou `__attribute__((packed))` e valide tamanhos em tempo de compilação. Prefira APIs de leitura estruturada que abstraem layout físico.