Fallos del tipo CWE-1385

41 resultados

Validação ausente de origem em WebSockets

Ocorre quando uma aplicação WebSocket aceita conexões sem verificar se o cliente vem de um domínio autorizado. Um atacante em outro site consegue estabelecer um WebSocket direto com sua aplicação em nome de um usuário autenticado, executando ações maliciosas sem consentimento (ataque CSRF via WebSocket). Diferente do HTTP, browsers não enviam automaticamente o header Origin em todas as situações, então validá-lo no servidor é crítico.

Ejemplo

Um banco oferece transações via WebSocket. Um atacante cria um site que, ao ser visitado por um cliente do banco, abre um WebSocket para ws://banco.com/transacao e transfere dinheiro. Se o servidor não valida o Origin header, a conexão é aceita e o dano é feito.

Cómo mitigar

Valide sempre o header Origin (ou Sec-WebSocket-Origin) na função de upgrade do WebSocket e rejeite conexões de domínios não autorizados. Use tokens CSRF também em handshakes WebSocket, não confie apenas em autenticação de sessão.