Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en PHPUnit (CVE-2026-24765)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-502 Deserialización de datos no confiables
Fecha de publicación:
27/01/2026
Última modificación:
03/03/2026

Descripción

PHPUnit es un framework de pruebas para PHP. Se ha descubierto una vulnerabilidad en versiones anteriores a 12.5.8, 11.5.50, 10.5.62, 9.6.33 y 8.5.52 que involucra la deserialización insegura de datos de cobertura de código en la ejecución de pruebas PHPT. La vulnerabilidad existe en el método `cleanupForCoverage()`, que deserializa archivos de cobertura de código sin validación, lo que podría permitir la ejecución remota de código si archivos `.coverage` maliciosos están presentes antes de la ejecución de la prueba PHPT. La vulnerabilidad ocurre cuando un archivo `.coverage`, que no debería existir antes de la ejecución de la prueba, es deserializado sin la restricción del parámetro `allowed_classes`. Un atacante con acceso de escritura de archivos local puede colocar un objeto serializado malicioso con un método `__wakeup()` en el sistema de archivos, lo que lleva a la ejecución de código arbitrario durante las ejecuciones de pruebas con la instrumentación de cobertura de código habilitada. Esta vulnerabilidad requiere acceso de escritura de archivos local a la ubicación donde PHPUnit almacena o espera archivos de cobertura de código para las pruebas PHPT. Esto puede ocurrir a través de ataques a la cadena de CI/CD, el entorno de desarrollo local y/o dependencias comprometidas. En lugar de simplemente sanear silenciosamente la entrada a través de `['allowed_classes' => false]`, el mantenedor ha optado por hacer explícito el estado anómalo tratando los archivos `.coverage` preexistentes para las pruebas PHPT como una condición de error. A partir de las versiones 12.5.8, 11.5.50, 10.5.62, 9.6.33, cuando se detecta un archivo `.coverage` para una prueba PHPT antes de la ejecución, PHPUnit emitirá un mensaje de error claro que identifique el estado anómalo. Las organizaciones pueden reducir el riesgo efectivo de esta vulnerabilidad a través de una configuración adecuada de CI/CD, incluyendo ejecutores efímeros, aplicación de revisión de código, protección de ramas, aislamiento de artefactos y control de acceso.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:phpunit_project:phpunit:*:*:*:*:*:-:*:* 8.5.52 (excluyendo)
cpe:2.3:a:phpunit_project:phpunit:*:*:*:*:*:-:*:* 9.0.0 (incluyendo) 9.6.33 (excluyendo)
cpe:2.3:a:phpunit_project:phpunit:*:*:*:*:*:-:*:* 10.0.0 (incluyendo) 10.5.62 (excluyendo)
cpe:2.3:a:phpunit_project:phpunit:*:*:*:*:*:-:*:* 11.0.0 (incluyendo) 11.5.50 (excluyendo)
cpe:2.3:a:phpunit_project:phpunit:*:*:*:*:*:-:*:* 12.0.0 (incluyendo) 12.5.8 (excluyendo)
cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:*