Sur 19,000 vulnérabilités PHP, 35 sont exploitées. Les voici.

Nous avons classé chaque CVE du moteur PHP, de Composer et de WordPress selon son exploitation réelle (CISA KEV + EPSS) plutôt que selon le CVSS. Un quart des CVE « critiques » ont une probabilité d'exploitation inférieure à 1 % ; les failles réellement utilisées par les attaquants sont listées ci-dessous.

Publié le 2026-10-28 · données : flux phpwarden 2026.10.28.1 (généré le 2026-10-27) · sources : OSV.dev, FriendsOfPHP, NVD, CISA KEV, FIRST EPSS

19,264CVE dans le flux
35dans CISA KEV (exploitées)
1,446CVSS 9.0+ « critiques »
24%d'entre elles : EPSS sous 1 %

Pourquoi nous avons compté

Chaque scanner de dépendances PHP que nous avons essayé trie les résultats par CVSS. Cela produit un mur de rouge : dans ce flux, 5,708 des 19,264 CVE sont notées élevées ou critiques. Personne ne corrige 5,708 choses, alors la liste est ignorée, ce qui est pire qu'une absence de liste. Nous voulions savoir quelle part de ce rouge est réelle.

Nous avons donc pris chaque avis que phpwarden connaît — 8,599 avis de paquets Composer, 12,328 avis d'extensions/thèmes/cœur WordPress et les CVE du moteur PHP — et relié chacun à deux signaux d'exploitation réelle : le catalogue Known Exploited Vulnerabilities de la CISA (exploitation confirmée dans la nature) et l'EPSS de FIRST (une probabilité, mise à jour quotidiennement, qu'une CVE soit exploitée dans les 30 prochains jours). 17,929 des 19,264 ont un score EPSS.

1. Le flux par gravité CVSS

Voici ce que voit un scanner trié par CVSS. 30% de l'ensemble est « élevé » ou « critique ».

Critique1,526Élevée4,182Moyenne11,894Faible611Sans score1,051

2. Le flux par exploitation réelle

Exactement 35 des 19,264 CVE — soit 0.18% — figurent dans CISA KEV. Élargissez le filet à « l'EPSS indique ≥ 10 % de chance d'exploitation dans les 30 prochains jours » et vous obtenez 667 (3%). À ≥ 50 %, il y en a 226. Le nombre de choses pour lesquelles une équipe PHP doit réalistement tout laisser tomber se compte en dizaines, pas en milliers.

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

3. « Critique » est un faible prédicteur

Il y a 1,446 CVE notées 9.0 ou plus. 351 d'entre elles (24%) ont un EPSS inférieur à 1 % — les attaquants n'y ont montré pour ainsi dire aucun intérêt. Seules 270 (19%) dépassent un EPSS de 10 %. En parallèle, 156 CVE avec un CVSS inférieur à 7.0 (« moyen » ou moins) ont un EPSS de 10 % ou plus, et 5 des 35 entrées KEV sont notées moyennes ou ne portent aucun CVSS.

Quelques-unes des CVE notées 9.0+ que personne n'exploite, pour rendre la chose concrète :

Aucune n'est « sans danger » — un correctif reste la bonne réponse. Mais si vous n'avez qu'un après-midi, il ne devrait pas leur être consacré.

4. Les 35 qui sont réellement exploitées

Classées par EPSS. Chaque ligne renvoie à sa page d'avis avec les versions affectées et corrigées.

CVENatureConcerneGravitéEPSS
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%

Où elles se concentrent

Paquets Composer24Extensions/thèmes/cœur WordPress7Moteur PHP4

Par paquet : 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). Les cœurs de CMS dominent — Drupal, Craft, Magento, WordPress — car une RCE non authentifiée dans un CMS vaut la peine d'être automatisée à l'échelle d'internet, et ce sont précisément ces failles qui sont automatisées.

Deux d'entre elles sont des dépendances de développement

CVE-2017-9841 (phpunit/phpunit) and CVE-2021-3129 (facade/ignition) figurent dans KEV avec un EPSS proche de 100 %. Ni l'une ni l'autre ne devrait exister sur un serveur de production : eval-stdin.php de PHPUnit et la page d'erreur de débogage d'Ignition ne sont accessibles que lorsque des paquets require-dev ont été déployés. composer install --no-dev dans votre étape de déploiement élimine toute une catégorie de ces failles, et un scanner qui vérifie si un paquet vulnérable est réellement atteignable depuis votre code vous dira lesquelles du reste comptent.

Le moteur PHP lui-même

4 CVE du moteur figurent dans KEV : CVE-2026-109618, CVE-2026-109619, CVE-2024-4577, CVE-2019-11043. Ce sont celles où « quelle version de PHP utilisez-vous » est toute la question — et comme PHP rétroporte les correctifs branche par branche, le bon contrôle est « votre 8.2.x est-il au niveau ou au-dessus de la version corrective pour 8.2 », pas « êtes-vous sur la dernière version majeure ». Une branche en fin de vie n'a aucune version corrective.

5. Exploitées, mais pas (encore) dans KEV

KEV est sélectif et accuse un retard ; l'EPSS évolue chaque jour. Celles-ci ont le plus haut EPSS de tout ce qui ne figure pas dans le catalogue. Si votre scanner ne connaît que KEV, il ne connaît pas celles-ci.

CVENatureConcerneGravitéEPSS
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. Quand les failles ont été publiées

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

2024 a été l'année la plus chargée du flux, portée par les avis d'extensions WordPress. Le volume n'est pas le risque : la plupart des 35 CVE exploitées ont plusieurs années. Les attaquants n'ont pas besoin de nouvelles failles tant que les anciennes fonctionnent encore sur des hôtes non corrigés.

Quoi en faire

  1. Triez par exploitation, pas par gravité. KEV d'abord, puis EPSS, puis CVSS. C'est l'ordre qu'utilise phpwarden, et c'est pourquoi son mode CI dispose d'un réglage fail-on: exploited plutôt que d'un simple seuil CVSS.
  2. Vérifiez l'atteignabilité. Un paquet vulnérable qu'aucune partie de votre code n'appelle est moins prioritaire qu'un paquet sur un chemin de requête. phpwarden deps composer.lock vérifie si chaque paquet vulnérable est référencé.
  3. Déployez sans les dépendances de développement. Deux des CVE PHP les plus exploitées au monde ne mordent que si vous ne l'avez pas fait.
  4. Connaissez la branche de votre moteur. 4 des 35 concernent PHP lui-même ; phpwarden scan compare votre version exacte à la version corrective de votre branche.

Vérifiez votre propre projet en une commande

Zéro dépendance, hors ligne, Apache-2.0. Classe par KEV → EPSS → CVSS et vérifie l'atteignabilité.

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

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

Méthode et réserves