Posted by Leonardo Mon, 29 Oct 2007 11:49:01 GMT
Segundo este post do blog de segurança de Ruby on Rails, o plugin Restful_Authentication contém um falha de segurança quando se utiliza a funcionalidade de ativação de um cadastro.
De acordo com o post, o plugin aceita receber o parâmetro activation_code vazio assim:
http://localhost:3000/user/activate ou http://localhost:3000/activate/?activation_code=
dependendo das rotas criadas.
Isto geraria a seguinte consulta SQL:
SELECT * FROM users WHERE (users.activation_code IS NULL) LIMIT 1
A pessoa, então, poderia se logar sem senha com a primeira conta que tivesse o activation_code vazio, ou seja, com um dos usuários registrados.
Pelo post, o dono do plugin já foi notificado e o mesmo já providenciou a correção.
Se você usa, ou pensa em usar este plugin em algum de seus projetos, vale a pena pegar a última versão ou trocar a primeira linha do método de ativação para:
self.currentuser = params[:activationcode].blank? ? :false : User.findby_activationcode(params[:activation_code])
não esquecendo de acertar os nomes dos models caso tenha alterado.
