Weaknesses of type CWE-777

4 results

Expressão regular sem âncoras

Quando uma regex não usa âncoras (^ e $), ela busca a sequência de caracteres em qualquer parte da string, não necessariamente do início ao fim. Isso permite que um atacante contorne validações injetando dados maliciosos antes ou depois do padrão esperado, transformando uma verificação que deveria ser rigorosa em algo permissivo demais.

Example

Um formulário valida e-mail com regex /\w+@\w+\.\w+/ (sem âncoras). Um atacante envia "admin@site.com;DROP TABLE users" e a validação passa, porque a regex encontra "admin@site.com" em algum lugar da string, ignorando o comando SQL após o ponto e vírgula.

How to mitigate

Use sempre âncoras na regex: /^padrão$/ para garantir que toda a string corresponde ao padrão. Além disso, valide e sanitize entrada não apenas com regex, mas com lógica adicional (whitelist, escape, prepared statements para SQL).