Se publica la actualización de seguridad 1.4.20
Cuando está a punto de finalizar su soporte oficial, el viejo Symfony 1.4 sigue publicando versiones de mantenimiento. La nueva versión 1.4.20 incluye una corrección de seguridad, por lo que se recomienda una actualización inmediata para cualquier aplicación Symfony 1.4.
La vulnerabilidad, descubierta por el programador Uli Hecht, permite ver el contenido de cualquier archivo para el que el servidor web tenga acceso de lectura. Para activar la vulnerabilidad, tu aplicación debe contener un formulario con algún campo de los que permiten subir archivos y también debes haber subido un archivo a algún directorio bajo el directorio raíz del servidor web.
Si no puedes actualizar tus aplicaciones ahora mismo, aplica el siguiente parche en la clase sfForm.class.php
:
--- /branches/1.4/lib/form/sfForm.class.php (revision 29678) +++ /branches/1.4/lib/form/sfForm.class.php (revision 33598) @@ -223,4 +223,6 @@ } + $this->checkTaintedValues($this->taintedValues); + try { @@ -1337,3 +1339,23 @@ return $array1; } + + /** + * Checks that the $_POST values do not contain something that + * looks like a file upload (coming from $_FILE). + */ + protected function checkTaintedValues($values) + { + foreach ($values as $name => $value) + { + if (!is_array($value)) { + continue; + } + + if (isset($value['tmp_name'])) { + throw new InvalidArgumentException('Do not try to fake a file upload.'); + } + + $this->checkTaintedValues($value); + } + } }
Al margen de esta vulnerabilidad, Symfony 1.4 también corrige los siguientes errores:
- Se ha solucionado un error de
sfPDOSessionStorage
con Oracle. - Se ha arreglado el orden en el que devuelve la información
sfWebRequest::splitHttpAcceptHeader
. - Se ha solucionado el formato de las excepciones cuando se utiliza el servidor web interno de PHP 5.4.
- Se ha arreglado un problema con el método
sfPDODatabase::call()
.
Para actualizar a la nueva versión de Symfony:
- Si usas el sandbox, te lo tienes que bajar otra vez.
- Si lo has instalado mediante PEAR, ejecuta el comando
pear upgrade symfony/symfony-1.4.20
- Si lo has instalado mediante Subversion, ejecuta el comando
svn switch http://svn.symfony-project.com/tags/RELEASE_1_4_20
Independientemente de cómo lo actualices, no olvides borrar la caché de cada proyecto después de la actualización, mediante el comando symfony cc
Fuente: Security release: symfony 1.4.20 released
Comentarios
-
#1
Y qué pasará con las aplicaciones hechas en symfony 1.4 a partir de ahora? Estarán en riesgo? Será obligatorio pasarlas a symfony2? gracias
-
#2
Claro, es como todo. Cuando se deje de dar soporte ya será responsabilidad de cada uno seguir en esa versión por su cuenta y riesgo (sin más correcciones oficiales) o actualizar a la siguiente LTS, creo yo.
-
#3
Ya, pero eso supone una inversión que te aseguro mis clientes no van a realizar en una web que lleva menos de 3 años (como muncho) funcionando, por más que les cuente de seguridad. E imagino que habrá mucha gente en esta situación. Es así? saludos
-
#4
Hace unos meses Fabien escribió un post explicando qué pasaría a partir de noviembre de 2012 con Symfony 1.4: symfony 1.4 end of maintenance: What does it mean?
El último párrafo es seguramente el más interesante:
"The only valid concerns are about forward compatibility with future versions of PHP and the possible security issues. For those problems, and if the community is willing to help, I will happily accept patches and package new releases on a case by case basis."
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 plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.