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.
Impacto
Puntuación base 3.x
7.80
Gravedad 3.x
ALTA
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:*:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/sebastianbergmann/phpunit/commit/3141742e00620e2968d3d2e732d320de76685fda
- https://github.com/sebastianbergmann/phpunit/releases/tag/10.5.63
- https://github.com/sebastianbergmann/phpunit/releases/tag/11.5.50
- https://github.com/sebastianbergmann/phpunit/releases/tag/12.5.8
- https://github.com/sebastianbergmann/phpunit/releases/tag/8.5.52
- https://github.com/sebastianbergmann/phpunit/releases/tag/9.6.33
- https://github.com/sebastianbergmann/phpunit/security/advisories/GHSA-vvj3-c3rp-c85p
- https://lists.debian.org/debian-lts-announce/2026/02/msg00009.html



