Vulnerabilidad en Laravel Framework

04 Septiembre 2020
Informativo

Laravel, un framework de código abierto para desarrollar aplicaciones y servicios web con PHP, ha informado de dos vulnerabilidades que afectarían a sus versiones 6.x y 7.x.

La filosofía de Laravel es desarrollar código PHP de forma elegante y simple. Hoy en día, PHP es uno de los lenguajes de programación más populares en la web, utilizado por más del 76% de los sitios web indexados que usan un lenguaje de programación por el lado del servidor (Back-End).

CVE-2020-24940

En versiones no actualizadas de Laravel, era posible asignar en masa atributos Eloquent que incluían el nombre de la tabla del modelo:

$model->fill(['users.name' => 'Taylor']);

Al hacerlo, Eloquent eliminaría el nombre de la tabla del atributo. Esta fue una característica de "conveniencia" de Eloquent y no fue documentada.

Sin embargo, cuando se combina con la validación, esto puede llevar a que se guarden en la base de datos valores inesperados y no validados. Por esta razón, se ha retirado la eliminación automática de los nombres de las tablas de las operaciones de asignación en masa para que los atributos pasen por la lógica típica "rellenable" / "protegida". Se descartará cualquier atributo que contenga nombres de tabla que no se declaren explícitamente como rellenables en el modelo.

Esta versión de seguridad será un cambio importante para las aplicaciones que dependían de la eliminación del nombre de la tabla no documentada durante la asignación masiva. Dado que esta función era relativamente desconocida e indocumentada, esperamos que la gran mayoría de las aplicaciones de Laravel puedan actualizarse sin problemas.

CVE-2020-24941

Al enumerar columnas individuales en la propiedad “$guarded” del modelo, cualquier columna que no esté incluida en la lista se puede actualizar mediante asignación masiva. Este es el comportamiento esperado. Sin embargo, pueden ocurrir actualizaciones inesperadas si las solicitudes están diseñadas para contener expresiones de anidación de columnas JSON ( {"foo->bar": "value"}). Incluso si la columna JSON “foo” está protegida, esta expresión podría actualizar la clave JSON “bar” dentro de la columna (porque "foo->bar" no aparece en la cláusula protegida).

El parche de hoy corrige este y otros posibles comportamientos inesperados al comparar la columna que se actualiza con una lista real de columnas de la base de datos que existen en el schema.

Laravel 8 se lanzará el 8 de septiembre

El equipo de Laravel acaba de anunciar que planean lanzar Laravel 8 el 8 de septiembre, y esperan que el tiempo de actualización sea de aproximadamente 10-15 minutos desde Laravel 7.x.

Laravel 8 contará con algunas adiciones nuevas y agradables, incluido un modo de mantenimiento mejorado.

Se recomienda lo siguiente:

  • Instalar las actualizaciones del fabricante disponibles en medios oficiales del proveedor, previo análisis del impacto que podría provocar en los servicios críticos para el negocio de su organización. Para ello consulte con su personal técnico o áreas resolutorias correspondientes.

El listado de las CVE se adjunta a continuación:


Tags: #laravel #parche #php #framework
  • Productos Afectados
  • Producto Versión
    Laravel 6.x anterior a 6.18.35
    7.x anterior a 7.24.0


© 2019 Entel CyberSecure
Protege tus activos críticos, datos e infraestructura TI y minimiza tus riesgos de fuga de información,
fraude electrónico, espionaje industrial, suplantación de identidades y amenazas Zero Day, con las soluciones y servicios del Centro de Ciberinteligencia de Entel.