La base de données des avis de sécurité PHP fait référence aux vulnérabilités de sécurité connues dans divers projets et bibliothèques PHP. Cette base de données ne doit pas servir de source principale d'informations pour des questions de sécurité, elle ne fait autorité pour aucun logiciel référencé, mais elle permet de centraliser les informations pour des raisons de commodité et de consommation aisée.
La base de données des avis de sécurité PHP est un logiciel gratuit et sans contrainte publié dans le domaine public.
Pour rechercher les vulnérabilités de vos applications en plus des vérifications manuelles, vous devez utiliser l'outil Local CLI :
local-php-security-checker --path=/path/to/composer.lock
CONSEIL : Si vous utilisez Github, vous pouvez utiliser l'action Github du vérificateur de sécurité PHP pour vérifier automatiquement les vulnérabilités lors de l'envoi de code.
La contribution à des avis de sécurité est aussi simple que possible :
Vous pouvez contribuer une nouvelle entrée en envoyant une pull request ou en créant un fichier directement via l'interface Github ;
Créez un répertoire basé sur le nom Composer du logiciel où le problème de sécurité existe (utilisez symfony/http-foundation
pour un problème dans le composant Symfony HttpFoundation par exemple) ;
Chaque problème de sécurité doit être enregistré dans un fichier dont le nom est l'identifiant CVE (de préférence) ou la date à laquelle le problème de sécurité a été annoncé suivi d'un incrément ( 2012-12-12-1
par exemple) ;
Le fichier est au format YAML et doit contenir les entrées suivantes (consultez les entrées existantes pour des exemples) :
title
: Un texte qui décrit la problématique de sécurité en quelques mots ;
link
: Un lien vers l'annonce officielle du problème de sécurité (les liens HTTPS sont préférés aux liens HTTP) ;
reference
: Une référence unique pour identifier le logiciel (le seul schéma pris en charge est composer://
suivi de l'identifiant Composer) ;
branches
: Un hachage des branches affectées, où le nom est le nom de la branche (comme 2.0.x
), et la valeur est un hachage avec les entrées suivantes :
time
: La date et l'heure en UTC auxquelles le problème de sécurité a été résolu ou null si le problème n'est pas encore résolu (la plupart du temps, la date de la validation de fusion qui a résolu le problème au format suivant 2012-08-27 19:17:44
) -- ces informations doivent être aussi précises que possible car elles sont utilisées pour déterminer si un projet est affecté ou non ;
versions
: Un tableau de contraintes décrivant les versions affectées pour cette branche (c'est le même format que celui utilisé pour Composer -- ['>=2.0.0', '<2.0.17']
).
Si vous disposez d'un identifiant CVE, ajoutez-le sous la clé cve
.
Assurez-vous que votre fichier est validé en exécutant php -d memory_limit=-1 validator.php
à partir de la racine de ce projet. Ce script nécessite que certaines dépendances soient installées via composer, vous devez donc exécuter composer install
avant.
Si du code concerné est disponible via différentes entrées Composer (comme lorsque vous disposez de divisions de sous-arborescence en lecture seule d'un référentiel principal), dupliquez les informations dans plusieurs fichiers.