La extensión mysqlnd de PHP no valida bien el tamaño de los paquetes que recibe de un servidor MySQL. Un servidor malicioso o comprometido puede provocar la caída del proceso PHP. La gravedad es baja y solo afecta a aplicaciones que se conectan a servidores de base de datos no confiables, pero conviene actualizar PHP a 8.2.34, 8.3.35, 8.4.26 o 8.5.11 en la próxima ventana de mantenimiento.
Qué está pasando
mysqlnd es el componente de PHP que habla con los servidores MySQL y MariaDB: lo usan mysqli y PDO_MySQL. El analizador de su protocolo lee campos de los paquetes que envía el servidor antes de comprobar que el paquete contiene suficientes bytes. Por eso, un servidor MySQL malicioso o comprometido puede enviar un paquete truncado y hacer que el cliente PHP lea más allá del final del búfer. Ese comportamiento no está definido y puede hacer que el proceso se caiga.
El problema aparece en varios puntos: en los paquetes de saludo, OK, EOF, cambio de autenticación, cached-sha2, change-user, cabecera de resultados, respuesta de sentencias preparadas y filas. Además, las funciones php_mysqlnd_net_field_length() y php_mysqlnd_net_field_length_ll() pueden leer entre 1 y 9 bytes fuera de límites. La corrección reemplaza la verificación de un solo byte por BAIL_IF_NOT_ENOUGH_DATA_EX(n), que comprueba el número exacto de bytes que necesita cada lectura.
Según el aviso, el impacto principal es una denegación de servicio. Los bytes leídos de más influyen en los valores interpretados, pero no se devuelven al servidor y no salen de la memoria del propio proceso. Las aplicaciones que solo se conectan a servidores de base de datos de confianza no están expuestas. El aviso incluye pruebas de regresión que simulan un servidor MySQL falso con paquetes truncados y que demuestran las lecturas fuera de límites.
Vulnerabilidades
| CVE | CVSS | Descripción |
|---|---|---|
| CVE-2025-1218 | 3.1 (CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N) | Lecturas fuera de límites en el analizador del protocolo de mysqlnd (mysqlnd_wireprotocol.c) al procesar paquetes truncados de un servidor MySQL malicioso o comprometido, con posible caída del proceso. |
Productos afectados
| Producto | Versiones afectadas | Versión corregida |
|---|---|---|
| PHP ext-mysqlnd (rama 8.2) | < 8.2.34 | 8.2.34 |
| PHP ext-mysqlnd (rama 8.3) | < 8.3.35 | 8.3.35 |
| PHP ext-mysqlnd (rama 8.4) | < 8.4.26 | 8.4.26 |
| PHP ext-mysqlnd (rama 8.5) | < 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 la versión corregida de tu rama: 8.2.34, 8.3.35, 8.4.26 u 8.5.11.
- Reinicia los servicios que ejecutan PHP (PHP-FPM, Apache con mod_php, workers) para que carguen la versión nueva.
Te ayudamos a revisar sin costo si tus servidores o equipos usan una versión afectada por esta alerta, y qué conviene hacer primero.
El riesgo real es bajo: para aprovechar la falla, el atacante tiene que controlar el servidor MySQL al que se conecta tu aplicación o interceptar esa conexión en la red local. Por eso no hace falta un parche de emergencia, pero sí conviene incluir esta actualización en tu próxima ventana de mantenimiento. Lo que sí te recomendamos revisar primero es si alguna aplicación se conecta a bases de datos de terceros o a servidores fuera de tu control, como integraciones con proveedores, bases de datos externas o herramientas que aceptan conexiones definidas por el usuario. Esos casos sí están expuestos.
Algo que suele pasarse por alto es que PHP no solo vive en el servidor web principal. También está en scripts de cron, contenedores Docker con imágenes antiguas, servidores de desarrollo y paneles de hosting con varias versiones de PHP instaladas a la vez. Aprovecha la ocasión para inventariar todas esas instalaciones y, si es posible, cifrar con TLS las conexiones a la base de datos que crucen redes compartidas.
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 → Respaldo y MonitoreoEl monitoreo 24/7 con alertas en tiempo real ayuda a detectar a tiempo comportamientos anómalos en tus servidores.
Conocer el servicio →Referencias
- https://github.com/php/php-src/security/advisories/GHSA-r6x9-5r99-36j7
- https://www.cve.org/CVERecord?id=CVE-2025-1218