Corrección de esta Vulnerabilidad PHP y migración
Comprueba primero si el proveedor ofrece un backport de PHP2Shell y prueba la migración de PHP 7.4 a 8.4. Un parche no devuelve el soporte a una rama EOL. Prueba aplicaciones y extensiones antes de cambiar la rama en producción.
Cambios de compatibilidad en PHP 8.0
Estas notas resumen la guía oficial de migración de PHP. Consulta el original para los cambios específicos de extensiones.
- Cambio
Los métodos con el nombre de la clase dejan de actuar como constructores; usa __construct().
Qué buscar en el códigoBusca clases con un método que tenga el mismo nombre.
Leer la guía oficial de PHP 8.0 ↗ - Cambio
Ya no se pueden invocar estáticamente los métodos no estáticos.
Qué buscar en el códigoBusca llamadas estáticas con el nombre de clase a métodos de instancia.
Leer la guía oficial de PHP 8.0 ↗ - Cambio
Cambia la comparación no estricta entre números y cadenas no numéricas.
Qué buscar en el códigoRevisa comparaciones no estrictas y validaciones que mezclen cadenas y números.
Leer la guía oficial de PHP 8.0 ↗
Cambios de compatibilidad en PHP 8.1
Estas notas resumen la guía oficial de migración de PHP. Consulta el original para los cambios específicos de extensiones.
- Cambio
Ya no se permite escribir en el array $GLOBALS completo.
Qué buscar en el códigoBusca asignaciones al array $GLOBALS completo.
Leer la guía oficial de PHP 8.1 ↗ - Cambio
Un parámetro opcional anterior a uno obligatorio se considera obligatorio.
Qué buscar en el códigoRevisa firmas con parámetros obligatorios después de parámetros con valor por defecto.
Leer la guía oficial de PHP 8.1 ↗ - Cambio
Los métodos heredados comparten sus variables estáticas con el método padre.
Qué buscar en el códigoRevisa variables estáticas en métodos heredados.
Leer la guía oficial de PHP 8.1 ↗
Cambios de compatibilidad en PHP 8.2
Estas notas resumen la guía oficial de migración de PHP. Consulta el original para los cambios específicos de extensiones.
- Cambio
La conversión de mayúsculas y minúsculas de funciones estándar pasa a basarse en ASCII, sin depender del locale.
Qué buscar en el códigoRevisa strtolower(), strtoupper() y comparaciones dependientes del locale.
Leer la guía oficial de PHP 8.2 ↗ - Cambio
str_split() devuelve un array vacío para una cadena vacía.
Qué buscar en el códigoBusca código que espere un único elemento vacío.
Leer la guía oficial de PHP 8.2 ↗ - Cambio
glob() devuelve un array vacío si open_basedir restringe todas las rutas.
Qué buscar en el códigoRevisa comparaciones estrictas con false en resultados de glob().
Leer la guía oficial de PHP 8.2 ↗
Cambios de compatibilidad en PHP 8.3
Estas notas resumen la guía oficial de migración de PHP. Consulta el original para los cambios específicos de extensiones.
- Cambio
range() valida con mayor rigor los tipos de límites y los valores del paso.
Qué buscar en el códigoBusca llamadas con objetos, arrays o pasos cero o negativos.
Leer la guía oficial de PHP 8.3 ↗ - Cambio
number_format() redondea antes del separador decimal cuando decimals es negativo.
Qué buscar en el códigoRevisa valores negativos de decimals en number_format().
Leer la guía oficial de PHP 8.3 ↗ - Cambio
La gestión de fechas usa clases de excepción y error más específicas.
Qué buscar en el códigoRevisa la construcción de DateTime y la captura de excepciones.
Leer la guía oficial de PHP 8.3 ↗
Cambios de compatibilidad en PHP 8.4
Estas notas resumen la guía oficial de migración de PHP. Consulta el original para los cambios específicos de extensiones.
- Cambio
exit() y die() usan coerción de tipos normal y pueden lanzar TypeError con entradas no válidas.
Qué buscar en el códigoBusca llamadas con valores que no sean cadenas ni enteros.
Leer la guía oficial de PHP 8.4 ↗ - Cambio
Las constantes PHP_DEBUG y PHP_ZTS pasan a ser booleanas.
Qué buscar en el códigoRevisa comparaciones estrictas entre estas constantes y enteros.
Leer la guía oficial de PHP 8.4 ↗ - Cambio
round() lanza ValueError con modos de redondeo no válidos.
Qué buscar en el códigoRevisa modos personalizados o seleccionados dinámicamente.
Leer la guía oficial de PHP 8.4 ↗
Antes de cambiar PHP
- Respalda archivos, configuración y datos y verifica la restauración.
- Prueba la versión de destino con las mismas extensiones que en producción.
- Revisa dependencias y compatibilidad de aplicaciones, plugins y temas.
- Prueba acceso, cargas, correo, tareas, colas y manejo de errores.
- Confirma que el paquete corrige esta Vulnerabilidad PHP y que la rama sigue teniendo soporte.
Vulnerabilidad PHP: elige los pasos de tu plataforma
Restauración tras actualizar por esta Vulnerabilidad PHP
Conserva referencias exactas de paquetes o imágenes y un procedimiento probado de restauración. Si falla la migración, restaura configuración y datos de forma coherente. Volver a un runtime vulnerable reintroduce el riesgo; revisa el aviso antes de exponerlo de nuevo.
Comprobaciones tras corregir esta Vulnerabilidad PHP
Prueba peticiones críticas, acceso, cargas, registros, tareas y procesos en segundo plano. Reinicia todos los procesos PHP web y comprueba cada sitio. Guarda el repositorio y la revisión completa; planifica la migración de ramas EOL.
Comprobar versión →