Una falla en los filtros de stream convert.* de PHP puede filtrar fragmentos de memoria del servidor si una aplicación usa datos controlados por un atacante en la opción line-break-chars. Afecta a PHP 8.2, 8.3, 8.4 y 8.5 anteriores a las versiones corregidas y tiene gravedad media. Actualiza PHP a 8.2.34, 8.3.35, 8.4.26 u 8.5.11 según tu rama.
Qué está pasando
Los filtros de stream convert.base64-encode, convert.quoted-printable-encode y convert.quoted-printable-decode de PHP aceptan una opción llamada line-break-chars, que define los caracteres usados como salto de línea. Al crear el filtro, PHP copia ese valor con pestrdup(), que se detiene en el primer byte NUL, pero guarda el largo original del texto.
Cuando el filtro inserta un salto de línea, copia la cantidad de bytes registrada desde una zona de memoria más pequeña. Así lee más allá de lo reservado y mete en el resultado bytes de memoria adyacente del servidor. Mientras más largo sea el valor después del NUL, más memoria se filtra.
El riesgo práctico es la fuga de información: si la aplicación devuelve el resultado codificado al usuario, este puede ver datos de la memoria del proceso. En algunas compilaciones también podría provocar una caída. El aviso incluye una prueba de concepto, también por HTTP.
Para explotarla, la aplicación tiene que pasar bytes controlados por el atacante a line-break-chars y esos bytes deben contener un NUL. El propio aviso indica que esto es poco común y que la mayoría de las aplicaciones no están afectadas.
Vulnerabilidades
| CVE | CVSS | Descripción |
|---|---|---|
| CVE-2026-92842 | 5.9 | Lectura fuera de límites en memoria heap en los filtros convert.base64-encode, convert.quoted-printable-encode y convert.quoted-printable-decode cuando line-break-chars contiene un byte NUL. Permite filtrar memoria adyacente en la salida del filtro. |
Productos afectados
| Producto | Versiones afectadas | Versión corregida |
|---|---|---|
| PHP (ext-standard) | 8.2 anteriores a 8.2.34 | 8.2.34 |
| PHP (ext-standard) | 8.3 anteriores a 8.3.35 | 8.3.35 |
| PHP (ext-standard) | 8.4 anteriores a 8.4.26 | 8.4.26 |
| PHP (ext-standard) | 8.5 anteriores a 8.5.11 | 8.5.11 |
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.26 u 8.5.11, según la rama que uses.
- Reinicia los servicios que ejecutan PHP (PHP-FPM, Apache con mod_php, etc.) para que carguen la versión corregida.
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 es urgente para la mayoría de las empresas, porque requiere un uso de código poco habitual. Igual conviene incluirla en el próximo ciclo de actualización de PHP, sobre todo en servidores web expuestos a Internet. Ten en cuenta que muchos servidores tienen más de una versión de PHP instalada, por ejemplo en paneles de hosting o en contenedores, y es fácil dejar alguna sin actualizar.
Si desarrollas aplicaciones propias, pide a tu equipo que busque usos de stream_filter_append con filtros convert.* y confirme que la opción line-break-chars no recibe datos enviados por usuarios. Como regla general, no conviene pasar entradas externas a parámetros de configuración interna del lenguaje.
Cómo te ayuda UpTech
Mientras aplicas la actualización, podemos definir en Cerberus WAF reglas específicas para las rutas y parámetros vulnerables de tu sitio. Reduce la exposición, pero no reemplaza el parche.
Conocer el servicio → Servicios Gestionados TICon 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 →Referencias
- https://github.com/php/php-src/security/advisories/GHSA-88hq-2827-7pg6
- https://www.cve.org/CVERecord?id=CVE-2026-92842