Solução

Nome Valor
Vulnerabilidade Injection
CWE CWE-74
OWASP Top Ten A03_2021-Injection

Concatenar o input do usuário na string de validação do Laravel, permite que o usuário insira novas regras de validação no campo. E isso pode permitir que um atacante:

No primeiro caso, obter essa informação pode ser útil para ajudar a explorar uma outra vulnerabilidade de validação possível no Laravel (que será abordado no próximo exercício).

Exemplo:

{
    "email": "a|exists:users,is_admin"
}

Ao usar a regra de validação exists dessa forma, podemos mapear na tentativa e erro as tabelas e colunas que existem no banco de dados. Pois caso a tabela ou coluna não exista, um erro será disparado e você receberá um status code 500 como resposta.

Leia o código fonte do Laravel para entender como essas strings de validação são tratadas internamente. Link direto:

src/Illuminate/Validation/Validator.php