Fallos del tipo CWE-761
2 resultadosLiberação de ponteiro não apontando para o início do buffer
Ocorre quando o código tenta liberar um ponteiro que foi deslocado ou modificado, em vez de apontar para o endereço original alocado. Isso corrompe a estrutura interna do alocador de memória e causa undefined behavior, levando a crashes ou exploração.
Ejemplo
Um código aloca `char *buffer = malloc(100)`, depois incrementa com `buffer++` para iterar, e ao final chama `free(buffer)` — liberando um endereço que não é o original alocado, não o início do bloco.
Cómo mitigar
Mantenha uma cópia do ponteiro original antes de modificá-lo (ex: `char *original = buffer; buffer++; ... free(original);`), ou use um índice separado para iteração em vez de aritmética de ponteiros. Ferramentas como AddressSanitizer e Valgrind detectam esse padrão em testes.
CVE-2024-31413MEDIUMFree of pointer not at start of buffer vulnerability exists in CX-One CX-One CXONE-AL[][]D-V4 (The version which was installed with a DVD veEPSS 0.2%CVE-2025-47749HIGHV-SFT v6.2.5.0 and earlier contains an issue with free of pointer not at start of buffer in VS6EditData.dll!CWinFontInf::WinFontMsgCheck funEPSS 0.2%