Pas php.net · Pas la NVD · Pas la CISA

Suivi des vulnérabilités PHP

Note d’information non officielle sur les vulnérabilités de sécurité PHP

English简体中文日本語DeutschFrançaisNederlandsEspañol

Alerte de sécurité

PHP2Shell : mettez PHP à jour. C’est le seul correctif complet.

CVE-2026-109618 et CVE-2026-109619 sont des failles critiques de PHP lui-même, permettant une exécution de code à distance sans authentification. Le projet PHP a publié des correctifs le 21 octobre 2026 pour les branches maintenues 8.2 à 8.5. Redémarrez PHP après la mise à jour. Un pare-feu ne la remplace pas.

Étapes de correction

Sécurité PHP expliquée · défensif

Injection d’objets PHP : de quoi s’agit-il et comment corriger

Passer des données contrôlées par l’utilisateur à unserialize() laisse l’attaquant choisir les objets que PHP crée. Le manuel PHP met en garde précisément contre cela.

Dernière mise à jour

De quoi s’agit-il

En désérialisant une chaîne, PHP recrée les objets décrits et peut appeler des méthodes magiques comme __wakeup() et __destruct(). Si la chaîne vient d’un cookie, d’un formulaire ou d’une requête API, l’attaquant peut choisir des classes déjà chargées par l’application ou ses bibliothèques et enchaîner leurs méthodes, jusqu’à l’écriture de fichiers ou l’exécution de code. MITRE la classe en CWE-502.

Comment le détecter

Comment le corriger

Vérifications en lecture seule et modèles sûrs

# Find unserialize() calls that may receive request data (read-only)
grep -rnE "unserialize\s*\(" --include=*.php . | grep -vE "/vendor/|/tests?/"

// Safer: exchange data as JSON
$data = json_decode($input, true, 512, JSON_THROW_ON_ERROR);

// If unserialize() is unavoidable for trusted data, forbid objects
$data = unserialize($trusted, ['allowed_classes' => false]);

allowed_classes => false suffit-il ?

Il bloque la création d’objets, donc le risque principal, mais le manuel PHP déconseille toujours de désérialiser des entrées non fiables. JSON est le choix par défaut le plus sûr.

Est-ce lié à PHP2Shell ?

Non. PHP2Shell est un bug du moteur PHP ; l’injection d’objets est un bug du code applicatif, présent même sur un PHP entièrement corrigé.

Autres classes de vulnérabilités PHP

Sources

Les liens externes quittent ce site. Nous n’hébergeons aucun code d’exploitation.

  1. unserialize() — PHP Manual
  2. json_decode() — PHP Manual
  3. PHP Object Injection — OWASP
  4. CWE-502: Deserialization of Untrusted Data — MITRE CWE