Falhas do tipo CWE-917

67 resultados

Injeção de Linguagem de Expressão

Ocorre quando uma aplicação permite que entrada do usuário seja interpretada como código em uma linguagem de expressão (EL, SpEL, OGNL, etc.) sem neutralização prévia. Um atacante injeta expressões maliciosas que são executadas no servidor, permitindo acesso a objetos da aplicação, execução de métodos arbitrários ou leitura de dados sensíveis.

Exemplo

Uma aplicação JSP que constrói uma mensagem de boas-vindas assim: `<h1>${param.nome}</h1>`. Se um atacante enviar `?nome=${Runtime.getRuntime().exec('rm -rf /')}`, a expressão será avaliada no servidor e o comando será executado.

Como mitigar

Nunca interprete entrada de usuário como código de expressão. Se for necessário usar EL, desative-a ou use apenas acesso a propriedades seguras (whitelist). Valide e escape todas as entradas; prefira templates que não avaliam expressões dinâmicas ou use sandboxing com acesso restrito a APIs perigosas.