Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
php-oom-longjmp — PHP 8.4.26 - Crítico - Remoto - OOM longjmp - CVE-2026-109618 PHP2Shell. Un multipart por chunks sin autenticación alcanza memory_limit antes que el código de la aplicación en Apache mod_php. Laboratorio frente a 8.4.27. Aviso: RCE inferido. | Kitploit
Herramientas/GitHubGitHub/abraxas/php-oom-longjmp
Forensia de MemoriaAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebAprendizaje y EducaciónLabs y Práctica
GitHubabraxas/php-oom-longjmp

php-oom-longjmp

PHP 8.4.26 - Crítico - Remoto - OOM longjmp - CVE-2026-109618 PHP2Shell. Un multipart por chunks sin autenticación alcanza memory_limit antes que el código de la aplicación en Apache mod_php. Laboratorio frente a 8.4.27. Aviso: RCE inferido.

Ver Repositorio
12hace 1 díaAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Abraxas Labs - php-oom-longjmp

php2shell - php-oom-longjmp

Cualquiera en internet puede comunicarse con tu sitio PHP de la misma forma en que lo hace un navegador, sin contraseña. En las últimas versiones de PHP afectadas, pueden enviar una solicitud de carga de archivos manipulada que hace que el motor se quede sin memoria mientras todavía está leyendo la solicitud, antes de que tu aplicación se inicie. PHP entonces abandona ese trabajo con la solicitud solo a medio construir. El PHP Group demostró que la limpieza de ese estado a medio construir puede convertirse en ejecución remota de código como el worker web. Este laboratorio demuestra el salto por falta de memoria en Apache mod_php 8.4.26 y que 8.4.27 finaliza la misma solicitud de forma limpia.

Clase: OOM longjmp / aborto en el arranque de la solicitud Alcance: Remoto

PHP 8.4.26 (php:8.4.26-apache) vs parcheado 8.4.27 - php.net

Apache mod_php siempre ejecuta el apagado de la solicitud, incluso cuando el arranque de la solicitud falló. CVE-2026-109618 es un longjmp() sobre memory_limit durante el parseo de rfc1867 mientras un bucket de HashTable ya es visible para la destrucción. El laboratorio es un POST multipart/form-data en chunks sin Content-Length utilizable y con ~3000 cabeceras de parte adicionales bajo memory_limit=8M. 8.4.26 devuelve Fatal error: Allowed memory size ... in Unknown on line 0. 8.4.27 devuelve el marcador de vivo y ejecuta index.php. El GET del worker después del disparador sigue devolviendo 200 en ambos lados. La RCE según el aviso se infiere del GHSA.

IDCVE-2026-109618
AvisoGHSA-w8hw-w9fx-j79w
ClaseOOM longjmp / aborto en el arranque de la solicitud (RCE del aviso inferida)
AlcanceRemoto (HTTP no autenticado)
CWECWE-416 / CWE-824 / CWE-755
CVSSCrítico: 9.2 CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H (PHP Group)
ProductoPHP
AfectadoPHP 8.2 anterior a 8.2.35, 8.3 anterior a 8.3.36, 8.4 anterior a 8.4.27, 8.5 anterior a 8.5.12 (fijación del laboratorio 8.4.26)
Corregido8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 (21 oct 2026)
Autenticaciónninguna
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1

Relacionado: CVE-2026-109619 UAF de global de worker obsoleto (pareja PHP2Shell).

Qué puede hacer un atacante

MétodoDestinoPrivilegio
POST no autenticado multipart/form-data con Transfer-Encoding: chunked, muchas cabeceras de parte adicionales, memory_limit finitoparseo de rfc1867 / longjmp de zend_bailout durante php_request_startupDisponibilidad (probado en laboratorio): aborta el arranque de la solicitud antes de index.php en 8.4.26 (Unknown on line 0). Integridad (inferida): el apagado recorre $_POST/$_FILES medio inicializados; el proveedor mostró RCE como el worker de Apache (www-data en la imagen oficial). Reconocimiento (inferido): divulgación de restos del heap de la solicitud.
Mismo disparador en 8.4.27OOM suave retardadoCerrado (probado en laboratorio): marcador de vivo HTTP 200, files=1, el worker sigue en pie.
GET después del disparadorel worker sigue vivoProbado en laboratorio: esta fijación no produjo SIGSEGV ni registró zend_mm_heap corrupted.
Inicio de sesión, ruta de la aplicación, .so personalizado, reverse shelln/aCerrado. No se intentó control de RIP.

Probado en laboratorio vs inferido: el diferencial de OOM-longjmp entre 8.4.26 y 8.4.27 está probado en laboratorio. La UAF por muerte del worker y la RCE se infieren de GHSA-w8hw-w9fx-j79w. FPM normalmente termina el hijo ante un fallo de arranque; el proveedor no mostró un exploit completo de FPM para este CVE.

Requiere: Apache apache2handler. memory_limit finito (no establecer -1; esa es la mitigación). Parseo multipart habilitado. php:8.4.26-apache oficial vs php:8.4.27-apache.

Laboratorio

python3 php-oom-longjmp-Abraxas-Labs.py

o cd lab && ./run.sh. Loopback 127.0.0.1:18220 (8.4.26) frente a 127.0.0.1:18221 (8.4.27). Proyecto de Compose cve-2026-109618. Testigo CVE-2026-109618-OOM-WITNESS. Última línea:

SUCCESS CVE-2026-109618 vuln-crash=yes patched-ok=yes sapi=apache2handler vuln-image=php:8.4.26-apache patched-image=php:8.4.27-apache how=oom-longjmp-startup-fatal trigger=header-bomb-chunked asan=no CVE-2026-109618-OOM-WITNESS

Solo laboratorio autorizado. Se comunica con loopback.

La solución

Actualice a PHP 8.4.27 (o 8.2.35 / 8.3.36 / 8.5.12). El parche reemplaza el longjmp() por OOM con un OOM suave diferido en el siguiente punto seguro de la VM y un _exit() forzado tras un umbral superior (31c0ea7). Hasta entonces: memory_limit=-1 de administrador que las aplicaciones no puedan sobrescribir; mantenga post_max_size bajo; limite las partes y cabeceras multipart. No use RLIMIT_AS ni RLIMIT_DATA.

Referencias

  • php.net 21 Oct 2026 security release
  • GHSA-w8hw-w9fx-j79w
  • CVE-2026-109618
  • php/php-src etiqueta php-8.4.26 vs php-8.4.27
  • Parche 31c0ea7 Avoid state corruption via bailout
  • Relacionado GHSA-6wmf-4rv5-p3rp CVE-2026-109619
  • Crédito: Calif, Wiz, OpenAI, equipo de seguridad de PHP

Abraxas Labs [email protected]

Descargar herramienta