O banco de dados de avisos de segurança do PHP faz referência a vulnerabilidades de segurança conhecidas em vários projetos e bibliotecas PHP. Esta base de dados não deve servir como fonte primária de informação para questões de segurança, não é oficial para nenhum software referenciado, mas permite centralizar a informação para comodidade e fácil consumo.
O banco de dados de avisos de segurança do PHP é um software gratuito e desimpedido, lançado em domínio público.
Para verificar vulnerabilidades em seus aplicativos além das verificações manuais, você deve usar a ferramenta Local CLI:
local-php-security-checker --path=/path/to/composer.lock
DICA : Se você estiver usando o Github, poderá usar o PHP Security Checker Github Action para verificar automaticamente se há vulnerabilidades ao enviar código.
Contribuir com avisos de segurança é o mais fácil possível:
Você pode contribuir com uma nova entrada enviando uma solicitação pull ou criando um arquivo diretamente pela interface do Github;
Crie um diretório baseado no nome do Composer do software onde existe o problema de segurança (use symfony/http-foundation
para um problema no componente Symfony HttpFoundation, por exemplo);
Cada problema de segurança deve ser salvo em um arquivo onde o nome é o identificador CVE (preferencial) ou a data em que o problema de segurança foi anunciado seguido de um incremento ( 2012-12-12-1
por exemplo);
O arquivo está no formato YAML e deve conter as seguintes entradas (dê uma olhada nas entradas existentes para ver exemplos):
title
: Um texto que descreve o problema de segurança em poucas palavras;
link
: Um link para o anúncio oficial do problema de segurança (links HTTPS são preferidos aos HTTP);
reference
: Uma referência única para identificar o software (o único esquema suportado é composer://
seguido pelo identificador do Composer);
branches
: um hash de ramos afetados, onde o nome é o nome do ramo (como 2.0.x
) e o valor é um hash com as seguintes entradas:
time
: A data e hora em UTC quando o problema de segurança foi corrigido ou null se o problema ainda não foi corrigido (na maioria das vezes, a data do commit de mesclagem que corrigiu o problema no seguinte formato 2012-08-27 19:17:44
) – esta informação deve ser tão precisa quanto possível, pois é usada para determinar se um projeto é afetado ou não;
versions
: Uma matriz de restrições que descreve as versões afetadas para este branch (este é o mesmo formato usado para o Composer -- ['>=2.0.0', '<2.0.17']
).
Se você tiver um identificador CVE, adicione-o na chave cve
.
Certifique-se de que seu arquivo seja validado executando php -d memory_limit=-1 validator.php
na raiz deste projeto. Este script precisa de algumas dependências para serem instaladas via compositor, então você precisa executar composer install
antes.
Se algum código afetado estiver disponível através de diferentes entradas do Composer (como quando você tem divisões de subárvore somente leitura de um repositório principal), duplique as informações em vários arquivos.