Falhas do tipo CWE-422

2 resultados

Canal de mensagens Windows desprotegido (Shatter)

Aplicações Windows que não validam ou autenticam mensagens recebidas via SendMessage() ou PostMessage() permitem que processos não autorizados (inclusive de menor privilégio) enviem comandos maliciosos. Um atacante pode injetar mensagens que simulam ações do usuário ou alterem o estado da aplicação alvo, contornando controles de acesso do sistema operacional.

Exemplo

Um programa antivírus roda com privilégios elevados. Um malware em execução com conta comum envia uma mensagem WM_COMMAND forjada para a janela do antivírus, desabilitando proteções ou deletando logs, sem que o software valide quem enviou a mensagem.

Como mitigar

Implemente validação de origem nas callbacks de mensagens (use GetWindowThreadProcessId() para verificar o PID do remetente), aplique filtros via ChangeWindowMessageFilter() ou migre para APIs seguras que herdam credenciais (como Named Pipes ou sockets). Nunca confie cegamente em parâmetros de mensagens WM_* que executem ações críticas.