Se publican las actualizaciones de seguridad 2.3.29, 2.5.12 y 2.6.8
Se acaban de publicar varias versiones de Symfony para corregir el error de seguridad CVE-2015-4050: ESI unauthorized access.
Versiones afectadas
El componente HttpKernel incluído en las versiones 2.3.19 a 2.3.28, 2.4.9 y 2.4.10, 2.5.4 a 2.5.11 y 2.6.0 a 2.6.7.
Las versiones publicadas corrigen el error para Symfony 2.3, 2.5 y 2.6. La rama 2.4 se queda sin corregir porque su desarrollo finalizó hace varios meses. La versión 2.7 ha sido corregida en su versión de desarrollo porque todavía no se ha lanzado de manera estable.
Descripción del problema
Las aplicaciones con soporte de ESI o SSI activado, que usan el FragmentListener
, son vulnerables a un accesso no autorizado. Un usuario malicioso puede llamar a cualquier controlador de la aplicación mediante la ruta /_fragment
pasando un hash inválido en la URL (o incluso eliminándolo). Esto hace que los sistemas de seguridad que validan el hash no se ejecuten y por tanto se permita el acceso no autorizado.
El FragmentListener
lanza una excepción de tipo AccessDeniedHttpException
cuando la firma incluida en la URL no es válida. El problema es que después, el ExceptionListener
hace una subpetición que lanza de nuevo los eventos del kernel. Como el FragmentListener
no firma las subpeticiones, el controlador se ejecuta aunque en la petición original no se autorizó su ejecución. El resultado es que el usuario recibe una respuesta con código 403
y con el contenido generado por el controlador.
Solución
La solución implementada añade una comprobación en el FragmentListener
para que no se ejecute en el caso de que el atributo _controller
haya sido definido previamente. Puedes ver el código del patch en el pull request 14759 de Symfony.
Autor de la solución
Jakub Zalas ha sido el responsable de descubrir este error y también ha proporcionado su solución.
Fuente: CVE-2015-4050: ESI unauthorized access
Comentarios
Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente
unos meses después de su publicación para asegurar que estos sigan
siendo relevantes.
Proyectos Symfony destacados
La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.