Resumen ejecutivo
Nuestro equipo de investigación de seguridad ha descubierto que CVE-2023-0568una vulnerabilidad en la asignación de búferes que, según los informes oficiales, sólo afecta a las versiones PHP 8+, también afecta a las instalaciones de la serie PHP 7 (en Windows y Linux). Este hallazgo tiene implicaciones significativas para las organizaciones que todavía ejecutan PHP 7 en entornos de producción, especialmente desde que esta versión ha alcanzado su estado de Fin de Vida (EOL) y ya no recibe actualizaciones de seguridad oficiales.
8.1 CVSS 3.x de NVD
7.5 CVSS 3.x de Grupo PHP
Explicación de la vulnerabilidad
CVE-2023-0568 es un error de asignación de búfer de uno en uno en la función de resolución de rutas del núcleo de PHP. Cuando se resuelven rutas con longitudes cercanas a la configuración MAXPATHLEN del sistema, la función asigna un búfer que es un byte demasiado pequeño. Esto resulta en que el byte inmediatamente siguiente al búfer asignado es sobreescrito con un valor NULL.
Aunque en principio pueda parecer un problema menor, representa un problema de seguridad más grave:
- La vulnerabilidad puede dar lugar a un acceso no autorizado a los datos o a su modificación
- En determinadas condiciones, puede provocar una denegación de servicio (DoS).
- Las sobreescrituras de pila, incluso limitadas, pueden crear oportunidades para cadenas de explotación más complejas.
PHP 7: Aún vulnerable pero oficialmente sin soporte
El aviso oficial de CVE-2023-0568 especifica que afecta a:
- PHP 8.0x antes de 8.0.28
- PHP 8.1x antes de 8.1.16
- PHP 8.2x antes de 8.2.3
Sin embargo, nuestro equipo de investigación de seguridad ha confirmado que las instalaciones de la serie PHP 7 también son vulnerables a este mismo problema. Esto crea una brecha de seguridad significativa para las organizaciones que aún ejecutan PHP 7, como:
- PHP 7 ha alcanzado el estado EOL
- No hay parches oficiales disponibles de los mantenedores de PHP
- Esta vulnerabilidad sigue sin corregirse en todas las instalaciones de PHP 7.
Detalles técnicos
La vulnerabilidad existe en el código de resolución de rutas de PHP, que sigue este patrón en varias ubicaciones:
| // Asigna un búfer con un tamaño máximo de MAXPATHLEN char camino_resuelto[MAXPATHLEN]; // Si la ruta no termina con barra y hay que añadir una // Se podría escribir un carácter NUL en el índice MAXPATHLEN // Resultando en un desbordamiento del buffer de un byte |
Cuando la longitud de la ruta se aproxima a MAXPATHLEN, el código asigna un búfer que es un byte demasiado pequeño. Si la ruta no termina con una barra y requiere que se añada una, el código escribirá más allá del búfer asignado, sobrescribiendo un byte de la pila.
Aunque una sobrescritura aislada de la pila de un byte pueda parecer menor, puede tener graves implicaciones para la seguridad en las circunstancias adecuadas:
- Sobrescribir datos de la pila puede corromper variables adyacentes
- Puede influir potencialmente en el flujo de control del programa
- Si se combina con otras vulnerabilidades, podría contribuir a ataques más sofisticados
Nuestra solución: Soporte de ciclo de vida infinito para PHP 7
Entendemos que la migración de PHP 7 a versiones más recientes no siempre es factible de forma inmediata debido a la compatibilidad de la aplicación, las limitaciones de recursos u otros factores empresariales. Por eso ofrecemos:
- Parches de seguridad personalizados: Hemos desarrollado parches para PHP 7 que abordan CVE-2023-0568 y otras vulnerabilidades conocidas.
- Paquetes PHP 7 actualizados: Disponible para entornos Windows y Linux
- Apoyo continuo a la seguridad: Supervisión y parcheado continuos de las vulnerabilidades recién descubiertas en PHP 7.
Medidas recomendadas
Si su organización todavía está ejecutando PHP 7, le recomendamos:
- Evalúe su exposición: Evalúe si sus aplicaciones podrían ser vulnerables a la manipulación de rutas que podría desencadenar esta vulnerabilidad.
- Aplique nuestros paquetes parcheados: Instale nuestros paquetes PHP 7 con parches de seguridad para mitigar esta vulnerabilidad.
Conclusión
Las vulnerabilidades de seguridad no respetan las fechas de fin de vida útil. CVE-2023-0568 es un claro ejemplo de cómo los problemas de seguridad pueden afectar al software más allá de su ciclo de vida de soporte oficial. Nuestros servicios de soporte ampliado para PHP 7, así como para próximos acontecimientos como el fin de vida útil de PHP 8.3 a finales de 2027, proporcionan a las organizaciones los parches de seguridad que necesitan mientras planifican su estrategia de migración según su propio calendario.
