De 19,000 vulnerabilidades de PHP, 35 se están explotando. Aquí están.

Clasificamos cada CVE del motor de PHP, de Composer y de WordPress por explotación real (CISA KEV + EPSS) en lugar de por CVSS. Una cuarta parte de los CVE 'críticos' tiene una probabilidad de explotación inferior al 1%; los fallos que los atacantes usan de verdad están listados abajo.

Publicado el 2026-10-28 · datos: feed de phpwarden 2026.10.28.1 (generado el 2026-10-27) · fuentes: OSV.dev, FriendsOfPHP, NVD, CISA KEV, FIRST EPSS

19,264CVE en el feed
35en CISA KEV (explotados)
1,446CVSS 9.0+ "críticos"
24%de ellos: EPSS por debajo del 1%

Por qué hicimos el recuento

Todos los escáneres de dependencias de PHP que probamos ordenan los hallazgos por CVSS. Eso produce un muro de rojo: en este feed 5,708 de 19,264 CVE están clasificados como altos o críticos. Nadie corrige 5,708 cosas, así que la lista se ignora, lo cual es peor que no tener lista alguna. Queríamos saber cuánto de ese rojo es real.

Así que tomamos cada aviso que phpwarden conoce — 8,599 avisos de paquetes de Composer, 12,328 avisos de plugins/temas/núcleo de WordPress y los CVE del motor de PHP — y unimos cada uno a dos señales de explotación real: el catálogo de vulnerabilidades explotadas conocidas (Known Exploited Vulnerabilities) de CISA (explotación confirmada en entornos reales) y el EPSS de FIRST (una probabilidad actualizada a diario de que un CVE sea explotado en los próximos 30 días). 17,929 de los 19,264 tienen una puntuación EPSS.

1. El feed por severidad CVSS

Esto es lo que ve un escáner ordenado por CVSS. El 30% de todo es "alto" o "crítico".

Crítica1,526Alta4,182Media11,894Baja611Sin puntuación1,051

2. El feed por explotación real

Exactamente 35 de los 19,264 CVE — 0.18% — están en CISA KEV. Si se amplía el criterio a "el EPSS indica una probabilidad ≥10% de explotación en los próximos 30 días", se obtienen 667 (3%). Con ≥50% son 226. La cantidad de cosas por las que un equipo de PHP necesita de forma realista dejarlo todo se cuenta por decenas, no por miles.

35CISA KEV
226EPSS ≥ 50%
667EPSS ≥ 10%
18,597EPSS < 10%

3. "Crítico" es un mal predictor

Hay 1,446 CVE con una puntuación de 9.0 o superior. 351 de ellos (24%) tienen un EPSS inferior al 1% — los atacantes no han mostrado prácticamente ningún interés. Solo 270 (19%) superan un EPSS del 10%. Mientras tanto, 156 CVE con un CVSS inferior a 7.0 ("medios" o menores) tienen un EPSS del 10% o más, y 5 de las 35 entradas KEV están clasificadas como medias o no tienen ningún CVSS.

Unos cuantos de los CVE de 9.0+ que nadie está explotando, para concretar la idea:

Ninguno de estos es "seguro" — aplicar el parche sigue siendo lo correcto. Pero si solo dispone de una tarde, no debería dedicarla a estos.

4. Los 35 que se están explotando de verdad

Clasificados por EPSS. Cada fila enlaza con su página de aviso con las versiones afectadas y corregidas.

CVEQuéAfecta aSeveridadEPSS
CVE-2017-9841Code Injection in PHPUnitphpunit/phpunitcritical 9.8100%
CVE-2026-109618Upload-progress use-after-free and remote process-memory disclosurePHP enginecritical 9.2100%
CVE-2026-109619Fatal-error backtrace use-after-free and OPcache type confusionPHP enginecritical 9.2100%
CVE-2024-34102Magento Open Source affected by an Improper Restriction of XML External Entity Reference ('XXE') vulnerabilitymagento/community-edition, magento/product-community-editioncritical 9.8100%
CVE-2018-7600A remote code execution vulnerability exists within multiple subsystems of Drupal 7.x and 8.x. This potentialldrupal/core, drupal/drupalcritical 9.8100%
CVE-2024-4577PHP-CGI argument injection to RCE on Windows via Best-Fit encodingPHP enginecritical 9.8100%
CVE-2021-3129Unauthenticated remote code execution via insecure file handling in debug modefacade/ignitioncritical 9.8100%
CVE-2025-32432Craft CMS Allows Remote Code Executioncraftcms/cmscritical 10.0100%
CVE-2019-11043PHP-FPM remote code execution via env_path_info buffer underflowPHP enginecritical 9.8100%
CVE-2016-10033Remote code execution via crafted Sender in the isMail transportphpmailer/phpmailercritical 9.8100%
CVE-2025-49113Roundcube Webmail Vulnerable to Authenticated RCE via PHP Object Deserializationroundcube/roundcubemailcritical 9.9100%
CVE-2022-24086Magento improper input validation vulnerabilitymagento/community-editioncritical 9.899%
CVE-2018-7602A remote code execution vulnerability exists within multiple subsystems of Drupal 7.x and 8.x. This potentialldrupal/core, drupal/drupalcritical 9.899%
CVE-2021-21311SSRF in adminervrana/adminerhigh 7.298%
CVE-2020-11738The Snap Creek Duplicator plugin before 1.3.28 for WordPress (and Duplicator Pro before 3.8.7.1) allows Directduplicator (WordPress plugin)high 7.598%
CVE-2024-56145Craft CMS has potential RCE when PHP `register_argc_argv` config setting is enabledcraftcms/cmscritical 9.897%
CVE-2020-25213Unauthenticated arbitrary file upload to RCE via the elFinder connectorwp-file-manager (WordPress plugin)critical 10.097%
CVE-2025-54068Livewire is vulnerable to remote command execution during component property update hydrationlivewire/livewirecritical 9.896%
CVE-2025-54236Magento Community Edition Improper Input Validation vulnerabilitymagento/community-edition, magento/project-community-editioncritical 9.195%
CVE-2019-6340Some field types do not properly sanitize data from non-form sources. This can lead to arbitrary PHP code execdrupal/core, drupal/drupalhigh 8.192%
CVE-2021-32648Account Takeover in Octobercmsoctober/systemhigh 8.290%
CVE-2026-9082Drupal core includes a database abstraction API to ensure that queries executed against the database are sanitdrupal/corecritical 9.889%
CVE-2020-35489Unrestricted file upload via unsanitised filenames (double extension)contact-form-7 (WordPress plugin)critical 10.089%
CVE-2024-58136yiisoft/yii2 Mishandles the Attaching of Behavior Defined by a `__class` Array Keyyiisoft/yii2critical 9.088%
CVE-2020-11023Potential XSS vulnerability in jQuerycomponents/jquerymedium 6.985%
CVE-2020-28949Potential file overwrite if archive filename starts with file://pear/archive_tarunknown 0.085%
CVE-2018-15133Laravel Framework RCE Vulnerabilitylaravel/frameworkhigh 8.177%
CVE-2019-9978The social-warfare plugin before 3.5.3 for WordPress has stored XSS via the wp-admin/admin-post.php?swp_debug=social-warfare (WordPress plugin), social-warfare-pro (WordPress plugin)medium 6.173%
CVE-2020-36193Directory Traversal in Archive_Tarpear/archive_tarhigh 7.571%
CVE-2024-28000Unauthenticated privilege escalation to administrator via weak hash in the crawlerlitespeed-cache (WordPress plugin)critical 9.868%
CVE-2020-13671*Update November 18: Documented longer list of dangerous file extensions* Drupal core does not properly sanitdrupal/core, drupal/drupalhigh 8.836%
CVE-2025-23209Craft CMS has a potential RCE with a compromised security keycraftcms/cmshigh 8.022%
CVE-2026-63030WordPress 6.9.x before 6.9.5 and 7.0.x before 7.0.2 is affected by a REST API batch endpoint route confusion iWordPress corecritical 9.811%
CVE-2026-60137WordPress 6.8.x before 6.8.6, 6.9.x before 6.9.5, and 7.0.x before 7.0.2 does not properly sanitise the authorWordPress coremedium 5.95%
CVE-2025-35939Craft CMS stores arbitrary content provided by unauthenticated users in session filescraftcms/cmsmedium 5.31%

Dónde se concentran

Paquetes de Composer24Plugins/temas/núcleo de WordPress7Motor de PHP4

Por paquete: drupal/core (5), PHP engine (4), drupal/drupal (4), craftcms/cms (4), magento/community-edition (3), pear/archive_tar (2), WordPress core (2), phpunit/phpunit (1). Los núcleos de CMS dominan — Drupal, Craft, Magento, WordPress — porque un RCE no autenticado en un CMS merece automatizarse a escala de internet, y esos son precisamente los fallos que se automatizan.

Dos de ellos son dependencias de desarrollo

CVE-2017-9841 (phpunit/phpunit) and CVE-2021-3129 (facade/ignition) están en KEV con un EPSS cercano al 100%. Ninguno debería existir en un servidor de producción: el eval-stdin.php de PHPUnit y la página de error de depuración de Ignition solo son accesibles cuando se desplegaron paquetes de require-dev. Ejecutar composer install --no-dev en el paso de despliegue elimina toda una clase de estos, y un escáner que comprueba si un paquete vulnerable es realmente alcanzable desde su código le dirá cuáles de los demás importan.

El propio motor de PHP

4 CVE del motor están en KEV: CVE-2026-109618, CVE-2026-109619, CVE-2024-4577, CVE-2019-11043. Estos son aquellos en los que "qué versión de PHP tienes" es toda la cuestión — y como PHP retroporta las correcciones por rama, la comprobación correcta es "¿está 8.2.x en o por encima de la versión de corrección para 8.2?", no "¿estás en la última versión mayor?". Una rama que ha llegado al fin de su vida útil no tiene versión de corrección alguna.

5. Explotados, pero (todavía) no en KEV

KEV se cura manualmente y va con retraso; el EPSS se mueve a diario. Estos tienen el EPSS más alto de todo lo que no está en el catálogo. Si su escáner solo conoce KEV, no conoce estos.

CVEQuéAfecta aSeveridadEPSS
CVE-2020-11022Potential XSS vulnerability in jQueryathlon1600/youtube-downloader, components/jquery +1medium 6.999%
CVE-2022-39986RaspAP Command Injection vulnerabilitybillz/raspap-webguicritical 9.899%
CVE-2022-24637Improper Privilege Management in Open Web Analyticsopen-web-analytics/open-web-analyticscritical 9.899%
CVE-2018-12613phpMyAdmin Improper Authenticationphpmyadmin/phpmyadminhigh 8.898%
CVE-2023-6553The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and inbackup-backup (WordPress plugin)critical 9.898%
CVE-2022-21661WordPress is a free and open-source content management system written in PHP and paired with a MariaDB databasWordPress corehigh 8.098%
CVE-2016-10045Remote code execution in PHPMailerphpmailer/phpmailercritical 9.898%
CVE-2023-0315Froxlor vulnerable to Command Injectionfroxlor/froxlorhigh 8.898%
CVE-2019-9194elFinder command injection vulnerability in the PHP connectorstudio-42/elfindercritical 9.897%
CVE-2020-11530A blind SQL injection vulnerability is present in Chop Slider 3, a WordPress plugin. The vulnerability is intrchop-slider (WordPress plugin)critical 9.895%

6. Cuándo se publicaron los fallos

20155942016337201750720184862019711202070320211,77620222,30520232,48320244,26620251,20120261,624

2024 fue el año más grande del feed, impulsado por los avisos de plugins de WordPress. El volumen no es riesgo: la mayoría de los 35 CVE explotados tienen años. Los atacantes no necesitan fallos nuevos cuando los antiguos siguen funcionando en hosts sin parchear.

Qué hacer con esto

  1. Ordene por explotación, no por severidad. KEV primero, luego EPSS, luego CVSS. Ese es el orden que usa phpwarden, y es el motivo por el que su modo CI tiene un ajuste fail-on: exploited en lugar de solo un umbral de CVSS.
  2. Compruebe la alcanzabilidad. Un paquete vulnerable que nada de su código invoca tiene menor prioridad que uno en una ruta de petición. phpwarden deps composer.lock comprueba si se referencia cada paquete vulnerable.
  3. Despliegue sin dependencias de desarrollo. Dos de los CVE de PHP más explotados del planeta solo muerden si no lo hizo.
  4. Conozca la rama de su motor. 4 de los 35 son el propio PHP; phpwarden scan compara su versión exacta con la versión de corrección de su rama.

Compruebe su propio proyecto con un solo comando

Cero dependencias, sin conexión, Apache-2.0. Clasifica por KEV → EPSS → CVSS y comprueba la alcanzabilidad.

composer require --dev phpwarden/phpwarden   # PHP projects → vendor/bin/phpwarden
vendor/bin/phpwarden deps composer.lock      # Composer
vendor/bin/phpwarden scan                    # PHP engine on this host
vendor/bin/phpwarden wordpress /var/www/html # WordPress core, plugins, themes

O en CI: uses: oroma-alfred/phpwarden-action@v1 con fail-on: exploited.

Método y advertencias