Se
ha publicado una
nueva versión de Ruby on Rails que
soluciona varios problemas de seguridad. El más grave, permitiría a un atacante
inyectar consultas SQL y obtener información sensible de las
tablas en una base de datos.
Ruby on Rails, también conocido
como RoR o Rails, es un framework de aplicaciones
web de código abierto escrito en Ruby que sigue el paradigma de la
arquitectura Modelo-Vista-Controlador (MVC).
Ben Murphy descubrió una
vulnerabilidad en Active Record, que
es la clase que se encarga de todo lo referente a conexiones y consultas a la
base de datos. El error reside en el modo en el que esta clase maneja los
parámetros de una petición, dejando la posibilidad a que un atacante remoto pueda llevar a cabo inyecciones SQL a través de
una petición especialmente manipulada.
Esta vulnerabilidad tiene como
identificador CVE-2012-2661
y afecta a las versiones 3.0.0 y anteriores con excepción de la versión 2.3.14,
que no es vulnerable.
Aunque se han publicado nuevas versiones que solucionan este y otros fallos,
un simple cambio en el código puede ser una contramedida eficaz para esta
vulnerabildiad. Es necesario forzar el tipo del parámetro para que sea una
cadena (string). Por lo tanto, si se tiene esta consulta:
Post.where(:id =>
params[:id]).all
Se debería cambiar por esta otra:
Post.where(:id => params[:id].to_s).all
Se han publicado parches para las
ramas 3.0, 3.1 y 3.2. Los usuarios de versiones anteriores (que ya no tienen
soporte) deberán implementar la contramedida anterior o actualizar a las
últimas versiones (3.2.4, 3.1.5 o 3.0.13).
Más información:
Rails
version 3.2.5 has been released!
SQL
Injection Vulnerability in Ruby on Rails
Daniel Vaca

No hay comentarios:
Publicar un comentario