Fallos del tipo CWE-1037
5 resultadosRemoção ou modificação de código crítico de segurança por otimizações do processador
O compilador ou processador remove, reordena ou otimiza instruções que implementam controles de segurança (como verificações de limites, limpeza de memória sensível ou validações), porque as identifica como 'desnecessárias' do ponto de vista de funcionalidade. Isso expõe vulnerabilidades que o código-fonte pretendia proteger.
Um desenvolvedor escreve código que zera a memória contendo uma senha após uso (defesa contra vazamento via cold-boot attacks), mas o compilador remove esse loop 'inútil' por otimização, deixando a senha na RAM. Ou um processador reordena instruções de validação antes de seu uso, causando race conditions em checagens de acesso.
Use pragmas/flags que forcem preservação de instruções críticas (como 'volatile' em C para operações sensíveis, ou -fno-optimize-sibling-calls); documente claramente quais otimizações devem ser desativadas; valide binários gerados para confirmar que as instruções de segurança estão presentes; considere implementar verificações de segurança em hardware ou firmware em vez de software.