0
0

Email

Ventas Soporte

Dirección

CABA - Azopardo 770

Piso 9 - Oficina 10

Lunes a viernes de 9 a 18 hs
Atendido por personas reales
Alerta de Seguridad PHP · CVE-2026-109618 & CVE-2026-109619 · PHP 8.4.27

Vulnerabilidad crítica en PHP (CVE-2026-109618 y CVE-2026-109619): cómo funciona el fallo corregido hoy en PHP 8.4.27 / 8.2.35, el parche para mysqlnd y cómo proteger tu servidor

El equipo oficial de PHP acaba de publicar las actualizaciones de emergencia PHP 8.4.27 y PHP 8.2.35 para mitigar dos vulnerabilidades críticas en el núcleo del lenguaje (CVE-2026-109618 y CVE-2026-109619 / GHSA-w8hw-w9fx-j79w y GHSA-6wmf-4rv5-p3rp), junto con desbordamientos de búfer en Zend OPcache y Lexbor HTML5. En este informe elaborado por el equipo de ingeniería de MESI Hosting analizamos cómo se explotan estos fallos en servidores no parcheados, cómo solucionar la regresión en mysqlnd al compilar PHP 8.4.27 y cómo actualizar tu WordPress o sistema a medida sin errores.

Publicado: 21 de Octubre de 2026 Avisos: CVE-2026-109618 · CVE-2026-109619 · OSS-Fuzz #546798343 Flota MESI 100% Parcheada

1 Anatomía de CVE-2026-109618 y CVE-2026-109619: corrupción de estado vía "bailout" en el motor Zend

Las vulnerabilidades CVE-2026-109618 (GHSA-w8hw-w9fx-j79w) y CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp) afectan directamente al corazón de ejecución de PHP (Core / Zend Engine) bajo el vector técnico denominado State Corruption via Bailout.

¿Cómo ocurre la explotación en servidores web con PHP-FPM, Apache o Nginx?

Cuando un script PHP sufre una condición crítica irrecuperable —por ejemplo, cuando una petición maliciosa fuerza a agotar el límite de memoria (Allowed memory size exhausted), supera el max_execution_time o provoca un error fatal durante una operación interna del recolector de basura (GC), serialización o evaluación de tablas hash—, el motor Zend ejecuta internamente un salto no local (longjmp) mediante la función C zend_bailout() para abortar la petición actual.

En las versiones anteriores a PHP 8.4.27 y 8.2.35, si ese zend_bailout() se disparaba en puntos específicos donde el motor mantenía estructuras internas a medio modificar, el proceso hijo de PHP-FPM no restauraba limpiamente sus punteros globales antes de atender la siguiente petición HTTP:

  • Contaminación y corrupción entre peticiones en el mismo worker PHP-FPM: El siguiente visitante legítimo que era atendido por ese mismo proceso worker recibía un estado interno del motor Zend inconsistente, pudiendo desencadenar lecturas de memoria liberada (Use-After-Free), fallos de aserción o filtración de fragmentos de memoria de la petición previa.
  • Caída masiva de procesos (DoS / SIGSEGV): Un atacante remoto podía enviar una ráfaga de peticiones diseñadas para forzar bailouts en cadena, derribando los workers de PHP-FPM con errores 502 Bad Gateway o 503 Service Unavailable.
¿Qué versiones eran vulnerables hasta hoy? Todas las instalaciones de la rama PHP 8.4 anteriores a 8.4.27 (como 8.4.23, 8.4.25 o 8.4.26) y de la rama PHP 8.2 anteriores a 8.2.35. Si tu proveedor de hosting aún no actualizó los binarios hoy, tus pools PHP-FPM siguen expuestos a este vector.

2 Los otros 5 fallos de seguridad y memoria corregidos hoy en PHP 8.4.27 (Lexbor, OPcache, Sesiones, SOAP y PDO)

Además de los dos CVEs principales del núcleo, el parche de hoy soluciona vulnerabilidades de alta severidad detectadas por OSS-Fuzz e investigadores de seguridad en extensiones críticas que usa el 99% de los sitios web:

Componente / Extensión Identificador del Fallo Impacto de Explotación y Corrección en PHP 8.4.27
Zend OPcache & JIT OSS-Fuzz #546798343
GH-23637 / GH-23991
Heap Buffer Overflow en el optimizador de OPcache al procesar First-Class Callables (FCC) con inlining, lectura de memoria no inicializada en is_cacheable_stream_path() y SIGSEGV en workers PHP-FPM por desbordamiento del offset map_ptr en caché de clases.
Parser HTML5 (Lexbor / DOM) lexbor@8a14bc0
lexbor@f67ce4b / GH-23729
Heap Buffer Overflow al parsear selectores :lexbor-contains() y secuencias malformadas en Dom\HTMLDocument, más un Use-After-Free en DOMXPath::__construct() cuando se registran callbacks php:function.
Motor de Sesiones (Session) Bypass create_sid() +
session.upload_progress
session_start() continuaba ejecutándose aun después de que create_sid() fallara cuando session.use_strict_mode rechazaba un ID manipulado. Se suma al vector de creación no autenticada de archivos de sesión vía PHP_SESSION_UPLOAD_PROGRESS.
SOAP (WebServices / AFIP) GH-22895 Heap Use-After-Free al codificar un objeto Traversable con una clave inválida en peticiones o respuestas SOAP.
PDO & MBString GH-23106 / GH-23962 Lectura fuera de límites (Out-of-Bounds Read) en PDOStatement::getColumnMeta() y en mb_strpos() ante cadenas UTF-8 truncadas al final del buffer, más un Use-After-Free en bindValue() desde __toString().

Blindaje obligatorio en php.ini: desactivar session.upload_progress.enabled

Muchos administradores actualizan el binario de PHP pero dejan activada la configuración por defecto session.upload_progress.enabled = On. Cuando esta opción está encendida, un atacante puede enviar una petición POST multipart/form-data con el campo PHP_SESSION_UPLOAD_PROGRESS y obligar a PHP a escribir un archivo de sesión en /tmp/sess_* con contenido controlado por el atacante incluso en páginas que ni siquiera llaman a session_start().

Hardening aplicado en todos los servidores de MESI Hosting (php.ini) Seguridad de Sesiones
; Bloquea la creación no autenticada de sesiones y Heap Spraying vía multipart POST:
session.upload_progress.enabled = Off
session.use_strict_mode = 1
session.cookie_httponly = 1

3 ¡Atención Sysadmins! Cómo solucionar la regresión de "mysqlnd" en PHP 8.4.27 ("Premature end of data" / "EOF packet shorter than expected")

Si administrás tus propios servidores Linux y hoy compilaste PHP 8.4.27 desde el código fuente oficial (php-8.4.27.tar.xz), es muy probable que al levantar PHP-FPM contra motores MySQL con protocolo clásico te hayas encontrado con que las conexiones fallan arrojando:

Regresión en ext/mysqlnd/mysqlnd_wireprotocol.c de PHP 8.4.27 Error de Conexión MySQL
Warning: mysqli_real_connect(): Premature end of data (mysqlnd_wireprotocol.c:1018)
Warning: mysqli_real_connect(): EOF packet 1 bytes shorter than expected

¿Por qué ocurre este bug en el código fuente oficial de PHP 8.4.27 y cómo lo parcheamos en MESI?

En PHP 8.4.27, el equipo upstream agregó la macro BAIL_IF_NOT_ENOUGH_DATA(1) en la función php_mysqlnd_eof_read() dentro de ext/mysqlnd/mysqlnd_wireprotocol.c (línea 1018) inmediatamente después de avanzar el puntero p++ al leer packet->field_count. Eso exige que siempre quede al menos 1 byte extra en el buffer antes de evaluar if (packet->header.size > 1), rompiendo los paquetes EOF legítimos de 1 solo byte.

Compartimos con la comunidad técnica el parche exacto en C que nuestro equipo de ingeniería aplicó hoy en los paquetes de producción de MESI:

Parche en C para ext/mysqlnd/mysqlnd_wireprotocol.c (PHP 8.4.27) C Patch / mysqlnd
--- a/ext/mysqlnd/mysqlnd_wireprotocol.c
+++ b/ext/mysqlnd/mysqlnd_wireprotocol.c
@@ -1015,8 +1015,8 @@ php_mysqlnd_eof_read(zend_uchar * buf, size_t buf_len, ...
     packet->field_count = uint1korr(p);
     p++;
-    BAIL_IF_NOT_ENOUGH_DATA(1);
 
     if (ERROR_MARKER == packet->field_count) {
+        BAIL_IF_NOT_ENOUGH_DATA(1);
         DBG_ERR("Error packet appeared as EOF packet");
¿También viste la alerta de ayer sobre la explotación de ca-certificates (`SSA:2026-293-02`)? Ayer se publicó la actualización crítica de almacenes de certificados raíz TLS que revoca CAs comprometidas usadas en ataques Man-in-the-Middle. Leé nuestro análisis completo acá: Explotación de ca-certificates desactualizados (SSA:2026-293-02): cómo blindar OpenSSL, cURL, Mercado Pago y ARCA/AFIP en PHP 8.4.

4 Más allá del parche de seguridad: hasta 55% más velocidad (OPcache + JIT) y cómo migrar desde PHP 7.4 sin pantalla blanca

Actualizar tu sitio a PHP 8.4.27 en MESI no solo te protege contra CVE-2026-109618 y CVE-2026-109619: también reduce hasta un 55% el tiempo de respuesta (TTFB) en WordPress y duplica las peticiones por segundo en WooCommerce gracias a Zend OPcache v8.4.27 y nuestros discos SSD NVMe.

Si tu web todavía está en PHP 7.4 y al probar PHP 8.4 en tu panel panel.com.ar algún plugin o script propio muestra un error, así se corrigen en segundos los 3 casos más habituales:

Solución rápida a los 3 errores clásicos al pasar de PHP 7.4 a PHP 8.4 PHP 8.4.27
<?php
// 1. Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array
// ❌ Antes en PHP 7.4:
if (count($items) > 0) { ... }
// ✅ En PHP 8.4:
if (is_array($items) && count($items) > 0) { ... }

// 2. Deprecated: Creation of dynamic property MiClase::$prop is deprecated
// ✅ Agregá el atributo nativo encima de la clase o declará "public $prop;":
#[\AllowDynamicProperties]
class MiClaseLegacy { ... }

// 3. Deprecated: Function utf8_encode() / utf8_decode() is deprecated
// ✅ Reemplazalo por mb_convert_encoding():
$iso = mb_convert_encoding($utf8, 'ISO-8859-1', 'UTF-8');

Y si tenés un sistema histórico con funciones antiguas mysql_connect(), en MESI contás tanto con el Selector Multi-PHP (7.4 / 8.2.35 / 8.4.27) en 1 clic como con nuestro Puente de Compatibilidad Legacy a PHP 8.4 para que tu aplicación corra sobre el motor parcheado sin romperse.

5 Prompt Maestro: Usá la IA (Claude, ChatGPT, Gemini o Cursor) para auditar vulnerabilidades y actualizar tu código a PHP 8.4.27

Copiá este prompt diseñado por nuestro equipo de seguridad, pegalo en tu IA junto con tus archivos PHP y obtené el código blindado y compatible con PHP 8.4.27:

Prompt de Seguridad y Migración a PHP 8.4.27 (CVE-2026-109618 / 109619)
"Actuá como un Ingeniero Senior de Ciberseguridad PHP y Arquitecto de Sistemas. Acabo de actualizar mi servidor a PHP 8.4.27 para mitigar las vulnerabilidades CVE-2026-109618 y CVE-2026-109619.

Necesito que audites y actualices el siguiente código PHP aplicando estos 5 puntos:
1. Detectar y corregir cualquier patrón que pueda provocar agotamiento descontrolado de memoria (zend_bailout), recursión infinita o manejo inseguro de sesiones en session_start().
2. Auditar llamadas a DOMXPath, Dom\HTMLDocument, SoapClient y PDOStatement para evitar usos inseguros de memoria o inyección XPath/SQL.
3. Si el código usa funciones antiguas mysql_*, migrarlas a mysqli o PDO con sentencias preparadas.
4. Corregir cualquier TypeError estricto de PHP 8.4 en count(), strlen(), trim() o htmlspecialchars() cuando reciben null o false, y declarar explícitamente las propiedades de las clases para evitar Deprecated: Creation of dynamic property.
5. Entregarme el código completo listo para producción en PHP 8.4.27."
Parcheado hoy contra CVE-2026-109618 / 109619 · PHP 8.4.27 y 8.2.35 Activos

¿Tu hosting actual sigue corriendo una versión vulnerable de PHP?

En MESI Hosting compilamos y aplicamos los parches críticos de seguridad el mismo día de su publicación. Mudá tu sitio web, tienda WooCommerce o sistema empresarial a nuestra infraestructura NVMe con migración bonificada sin caídas.

Webs, WordPress y Sistemas PHP

Hosting Profesional / Empresarial

$10.900 ARS/mes + IVA

Plan Profesional 20 GB NVMe + 50 casillas (o Plan Empresarial 60 GB + IP dedicada por $28.790/mes)

  • PHP 8.4.27 y 8.2.35 blindados contra CVE-2026
  • Zend OPcache activo + Discos SSD NVMe
  • Selector Multi-PHP (7.4/8.2/8.4) + Puente Legacy
  • SSL Gratis + Backups automáticos en .snapshots
Ver todos los planes de Web Hosting →
Aislamiento y Recursos Dedicados

Cloud Server VPS 4

$43.230 ARS/mes + IVA

2 núcleos CPU · 4 GB RAM · 40 GB SSD Enterprise (o VPS 2 desde $22.000/mes)

  • Entorno aislado propio con IP dedicada
  • PHP 8.4.27 + ca-certificates 2026 preconfigurados
  • Migración bonificada desde tu servidor actual
  • Soporte de sysadmins 24/7 en español
Auditoría y Refactorización con IA

MIA · Desarrollo con IA

$43.230 ARS/mes + IVA

Auditamos y actualizamos tu código a PHP 8.4.27

  • Migramos tu sistema PHP 5.x/7.x a PHP 8.4
  • Blindaje contra inyección SQL, sesiones y XSS
  • Incluye servidor Cloud y supervisión humana
  • Ideal para sistemas a medida e intranets
Conocer cómo funciona MIA →
¿Necesitás ayuda urgente para parchear tu servidor o migrar un sitio vulnerable a MESI? Hablar con un Especialista en Seguridad por WhatsApp

Preguntas frecuentes sobre CVE-2026-109618, CVE-2026-109619 y PHP 8.4.27

¿En qué consisten las vulnerabilidades críticas de PHP CVE-2026-109618 y CVE-2026-109619 corregidas hoy?

Registradas bajo los avisos GHSA-w8hw-w9fx-j79w y GHSA-6wmf-4rv5-p3rp, permiten provocar una corrupción del estado interno del motor Zend cuando se dispara una interrupción abrupta (zend_bailout), por ejemplo al agotar el memory_limit o forzar un error fatal en mitad de operaciones internas. En entornos persistentes como PHP-FPM, el worker reutiliza ese estado corrupto en la siguiente petición HTTP, exponiendo a fugas de memoria entre usuarios, fallos de segmentación (SIGSEGV) o ejecución arbitraria.

¿Qué otras vulnerabilidades de memoria y sesiones se corrigieron en PHP 8.4.27 y PHP 8.2.35?

El lanzamiento de PHP 8.4.27 y 8.2.35 corrige además un Heap Buffer Overflow en el parser HTML5 Lexbor (:lexbor-contains y decode replay), un Heap Buffer Overflow en el optimizador de Zend OPcache con First-Class Callables (OSS-Fuzz #546798343), un fallo donde session_start() continuaba ejecutándose aun cuando create_sid() fallaba con session.use_strict_mode activo, y vulnerabilidades Use-After-Free en SOAP (GH-22895), DOMXPath (GH-23729) y PDO.

¿Por qué se debe desactivar session.upload_progress.enabled en php.ini para evitar la explotación remota de sesiones?

Cuando session.upload_progress.enabled está en On (su valor por defecto), cualquier atacante remoto sin iniciar sesión puede enviar una petición POST multipart/form-data incluyendo el campo PHP_SESSION_UPLOAD_PROGRESS y una cookie PHPSESSID arbitraria. Eso obliga al motor de PHP a escribir archivos de sesión controlados por el atacante en el servidor antes de que el código de tu web se ejecute, facilitando ataques de Local File Inclusion (LFI) y Heap Spraying. En MESI esta directiva está blindada en Off en todos los servidores.

¿Por qué al compilar PHP 8.4.27 aparece el error "Premature end of data" o "EOF packet shorter than expected" en mysqlnd y cómo se repara?

En PHP 8.4.27 se introdujo una macro BAIL_IF_NOT_ENOUGH_DATA en la función php_mysqlnd_eof_read (archivo ext/mysqlnd/mysqlnd_wireprotocol.c, línea 1018) inmediatamente después de leer el byte field_count, exigiendo al menos un byte adicional antes de comprobar if (packet->header.size > 1). Esto rompe la lectura de paquetes EOF clásicos de 1 byte en motores MySQL legacy. Se soluciona moviendo BAIL_IF_NOT_ENOUGH_DATA dentro del bloque if (ERROR_MARKER == packet->field_count), parche que ya viene aplicado de fábrica en la infraestructura de MESI.

¿Qué pasa si actualizo mi sitio WordPress o sistema a PHP 8.4.27 y un plugin viejo tira error?

En el panel de control de MESI (panel.com.ar) contás con selector Multi-PHP (PHP 8.4.27, PHP 8.2.35 y PHP 7.4) y el Puente de Compatibilidad Legacy. Además, podés usar el Prompt Maestro de IA incluido en esta guía para corregir en segundos avisos como Deprecated: Creation of dynamic property o TypeError: count() en tus scripts.

¿Los servidores de Web Hosting y Cloud VPS de MESI ya están protegidos contra CVE-2026-109618 y CVE-2026-109619?

Sí. Toda la flota de servidores web de MESI Hosting ya cuenta con PHP 8.4.27 y PHP 8.2.35 compilados y activos en producción, endurecimiento de sesiones (session.upload_progress.enabled = Off) y el almacén ca-certificates-20261020 actualizado.

¿Dudas? Chateá con nosotros