La base de datos de avisos de seguridad de PHP hace referencia a vulnerabilidades de seguridad conocidas en varios proyectos y bibliotecas de PHP. Esta base de datos no debe servir como fuente principal de información por temas de seguridad, no es autoritativa para ningún software referenciado, pero permite centralizar la información para mayor comodidad y fácil consumo.
La base de datos de avisos de seguridad de PHP es un software gratuito y sin cargas de dominio público.
Para buscar vulnerabilidades en sus aplicaciones además de las comprobaciones manuales, debe utilizar la herramienta CLI local:
local-php-security-checker --path=/path/to/composer.lock
SUGERENCIA : Si está utilizando Github, puede utilizar PHP Security Checker Github Action para comprobar automáticamente si hay vulnerabilidades al insertar código.
Contribuir con avisos de seguridad es lo más fácil posible:
Puede contribuir con una nueva entrada enviando una solicitud de extracción o creando un archivo directamente a través de la interfaz de Github;
Cree un directorio basado en el nombre del compositor del software donde existe el problema de seguridad (use symfony/http-foundation
para un problema en el componente Symfony HttpFoundation, por ejemplo);
Cada problema de seguridad debe guardarse en un archivo cuyo nombre sea el identificador CVE (preferido) o la fecha en que se anunció el problema de seguridad seguido de un incremento ( 2012-12-12-1
por ejemplo);
El archivo está en formato YAML y debe contener las siguientes entradas (consulte las entradas existentes para ver ejemplos):
title
: Un texto que describe el problema de seguridad en pocas palabras;
link
: Un enlace al anuncio oficial del problema de seguridad (se prefieren los enlaces HTTPS a los HTTP);
reference
: una referencia única para identificar el software (el único esquema admitido es composer://
seguido del identificador de Composer);
branches
: un hash de las sucursales afectadas, donde el nombre es el nombre de la sucursal (como 2.0.x
) y el valor es un hash con las siguientes entradas:
time
: la fecha y hora en UTC en que se solucionó el problema de seguridad o nulo si el problema aún no se solucionó (la mayoría de las veces, la fecha de la confirmación de fusión que solucionó el problema en el siguiente formato 2012-08-27 19:17:44
) -- esta información debe ser lo más precisa posible ya que se utiliza para determinar si un proyecto se ve afectado o no;
versions
: una serie de restricciones que describen las versiones afectadas para esta rama (este es el mismo formato que se usa para Composer - ['>=2.0.0', '<2.0.17']
).
Si tiene un identificador CVE, agréguelo debajo de la clave cve
.
Asegúrese de que su archivo se valide ejecutando php -d memory_limit=-1 validator.php
desde la raíz de este proyecto. Este script necesita que algunas dependencias se instalen a través de Composer, por lo que debes ejecutar composer install
antes.
Si algún código afectado está disponible a través de diferentes entradas de Composer (como cuando tiene divisiones de subárboles de solo lectura de un repositorio principal), duplique la información en varios archivos.