Una falla de baja gravedad en la extensión filter de PHP hace que FILTER_SANITIZE_ENCODED deje pasar sin codificar el byte 0xFF de forma inconsistente. Afecta a las ramas 8.2, 8.3, 8.4 y 8.5 anteriores a las versiones corregidas. Actualiza PHP en tu próxima ventana de mantenimiento regular.
Qué está pasando
La función interna php_filter_encode_url(), que usa el filtro FILTER_SANITIZE_ENCODED, arma una tabla de 256 entradas para decidir qué bytes debe codificar con porcentaje (por ejemplo, %FE). Por un error de programación, solo se inicializan las primeras 255 entradas, y la última, correspondiente al byte 0xFF, queda con el contenido que haya en memoria en ese momento.
El resultado es que el byte 0xFF a veces se codifica y a veces pasa sin cambios, según lo que haya en la pila de memoria. Todos los demás bytes se procesan correctamente. El aviso incluye una prueba de concepto pública que muestra cómo 0xFE se codifica mientras 0xFF pasa en bruto.
El impacto es bajo: no hay caídas ni corrupción de memoria. Solo podría importar si una aplicación confía en que FILTER_SANITIZE_ENCODED entregue una salida completamente codificada y la usa como parte de una cadena de ataque más larga, algo que el filtro no garantiza por sí solo. La corrección cambia el largo del memset() a sizeof(tmp) para inicializar la tabla completa.
Vulnerabilidades
| CVE | CVSS | Descripción |
|---|---|---|
| GHSA-ch8v-r6jh-4vvr (sin CVE) | 3.7 | Lectura de memoria no inicializada en php_filter_encode_url(): FILTER_SANITIZE_ENCODED codifica de forma inconsistente el byte 0xFF. |
Productos afectados
| Producto | Versiones afectadas | Versión corregida |
|---|---|---|
| PHP (ext-filter) rama 8.2 | < 8.2.34 | 8.2.34 |
| PHP (ext-filter) rama 8.3 | < 8.3.35 | 8.3.35 |
| PHP (ext-filter) rama 8.4 | < 8.4.25 | 8.4.25 |
| PHP (ext-filter) rama 8.5 | < 8.5.10 | 8.5.10 |
Qué hacer ahora
- Verifica qué versión de PHP tienes instalada en cada servidor (por ejemplo, con
php -v). - Actualiza PHP a 8.2.34, 8.3.35, 8.4.25 u 8.5.10 o superior, según la rama que uses.
Te ayudamos a revisar sin costo si tus servidores o equipos usan una versión afectada por esta alerta, y qué conviene hacer primero.
Esta falla no requiere una actualización de emergencia: aprovecha tu ciclo normal de parches de PHP, que de todos modos suele traer otras correcciones. Lo que más se pasa por alto es que PHP no solo corre en el servidor web principal; también aparece en contenedores, servidores de staging, hosting compartido y herramientas internas, así que revisa todos esos lugares.
Si tus desarrolladores usan FILTER_SANITIZE_ENCODED para construir URLs o datos que luego procesa otro sistema, pídeles que no lo traten como un control de seguridad único y que validen la entrada también en el destino. Si aún usas ramas sin soporte, como 8.1 o anteriores, planifica la migración, porque no reciben estas correcciones.
Cómo te ayuda UpTech
Con Gestión de Parches, las actualizaciones de seguridad de sistemas operativos y aplicaciones se aplican de forma programada, sin depender de que alguien lea esta alerta a tiempo.
Conocer el servicio → Servicios Gestionados TICon el inventario automatizado de hardware y software sabes de inmediato qué equipos tienen la versión afectada.
Conocer el servicio →