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

    diphda net el 27 de noviembre de 2012, 19:59:39

  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.

    Rafa Garcia el 28 de noviembre de 2012, 0:25:45

  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

    diphda net el 28 de noviembre de 2012, 11:31:53

  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."

    Javier Eguiluz el 28 de noviembre de 2012, 11:46:32

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.

Publicada el

26 de noviembre de 2012

Etiquetas

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.