Resumo Executivo
Nossa equipe de pesquisa em segurança descobriu que CVE-2022-31631, uma vulnerabilidade crítica de injeção de SQL com uma pontuação CVSS 3 de 9,1, afeta instalações do PHP 7 (no Windows e no Linux), apesar de os alertas oficiais mencionarem apenas as versões do PHP 8 e superiores. Essa vulnerabilidade de alta gravidade permite que invasores contornem a sanitização de SQL no driver PDO SQLite, o que pode levar ao comprometimento do banco de dados. Particularmente preocupante é o momento dessa divulgação, que ocorreu logo após o PHP 7 ter atingido o status de fim de vida útil (EOL), deixando muitas organizações vulneráveis sem nenhum patch oficial disponível.
A vulnerabilidade explicada
CVE-2022-31631 é uma falha grave de segurança que afeta a função PDO::quote() quando utilizada com bancos de dados SQLite. Quando essa função recebe uma string excessivamente longa, ocorre um estouro de inteiro, fazendo com que o driver sanitize os dados de forma incorreta. Essa sanitização inadequada pode levar a:
- Vulnerabilidades de injeção de SQL
- Acesso não autorizado ao conteúdo do banco de dados
- Manipulação ou destruição de dados
- Risco de comprometimento total do sistema
- Condições de negação de serviço
A gravidade dessa vulnerabilidade se reflete em sua pontuação CVSS de 9,1, o que a classifica como um risco “Crítico” que exige atenção imediata.
PHP 7: Vulnerável e negligenciado
O comunicado oficial sobre a vulnerabilidade CVE-2022-31631 menciona apenas estas versões afetadas:
- PHP 8.0.x anterior à versão 8.0.27
- PHP 8.1.x anterior à versão 8.1.15
- PHP 8.2.x anterior à versão 8.2.2
No entanto, nossos testes abrangentes de segurança confirmaram que as instalações da série PHP 7 também estão vulneráveis a essa falha de injeção de SQL. Isso cria uma brecha de segurança significativa para as organizações que ainda utilizam o PHP 7, pois:
- O PHP 7 atingiu o status de fim de vida útil (EOL) pouco antes da divulgação dessa vulnerabilidade
- Não há patches oficiais disponíveis por parte dos mantenedores do PHP
- A vulnerabilidade afeta uma funcionalidade de banco de dados amplamente utilizada
Detalhes técnicos e cenário de ataque
A vulnerabilidade ocorre no mecanismo de escasseamento do driver PDO para SQLite. Quando um aplicativo utiliza a função PDO::quote() para sanitizar entradas do usuário antes de incluí-las em uma consulta SQL (uma prática comum de segurança), a função não consegue lidar adequadamente com strings extremamente longas.
Aqui está uma explicação simplificada de como um ataque poderia ocorrer:
- Um invasor identifica um aplicativo web que utiliza PHP com PDO e SQLite
- Eles inserem uma sequência excepcionalmente longa em um campo de entrada vulnerável
- O aplicativo passa essa string para o método PDO::quote() para sanitização
- Devido a um estouro de inteiro, a função de citação não consegue escapar corretamente a string
- A entrada malformada resulta em injeção de SQL, permitindo que o invasor execute comandos SQL arbitrários
Por exemplo, um aplicativo vulnerável pode conter um código semelhante a este:
// Vulnerável padrão padrão $userInput = $_POST['user_input']; // Controlado pelo invasor entrada $db = new PDO('sqlite:database.sqlite'); $safeInput = $db->quote($userInput); // Vulnerável quando a entrada for extremamente longa $query = "SELECT * FROM users WHERE nome = $safeInput";
Nesse cenário, se $userInput exceder um determinado comprimento, a sanitização falha, o que pode permitir uma injeção de SQL, apesar da tentativa do desenvolvedor de adotar práticas de segurança adequadas.
Fatores de amplificação de risco
Vários fatores tornam essa vulnerabilidade particularmente preocupante:
- Alta pontuação no CVSS (9,1): Indica um problema crítico de segurança com potencial impacto grave
- Prazo para divulgação: Divulgado logo após o PHP 7 ter atingido o fim da vida útil (EOL), deixando os usuários sem um caminho oficial para a correção
- Funcionalidades comuns: O PDO é amplamente utilizado para operações com bancos de dados em aplicativos PHP
- Falsa sensação de segurança: Os desenvolvedores acreditam que estão se protegendo contra injeção de SQL ao usar PDO::quote()
- Conscientização limitada: A maioria dos boletins de segurança não menciona a vulnerabilidade do PHP 7
Nossa solução: suporte contínuo ao ciclo de vida do PHP 7
Reconhecendo a gravidade dessa vulnerabilidade e seu impacto sobre os usuários do PHP 7, nossa empresa oferece:
- Pacotes corrigidos do PHP 7: Desenvolvemos e testamos exaustivamente pacotes do PHP 7 que corrigem a vulnerabilidade CVE-2022-31631
- Suporte multiplataforma: Nossos pacotes corrigidos estão disponíveis tanto para ambientes Windows quanto para Linux
- Cobertura abrangente de segurança: Nosso suporte estendido abrange não apenas essa vulnerabilidade, mas todas as falhas de segurança conhecidas que afetam o PHP 7
Estratégias de mitigação recomendadas
Se sua organização utiliza o PHP 7 com o PDO SQLite, recomendamos as seguintes medidas imediatas:
- Aplique nossos patches de segurança: Instale nossos pacotes corrigidos do PHP 7 para se proteger contra essa vulnerabilidade
- Use consultas parametrizadas: Passe a usar instruções preparadas do PDO em vez de depender da função quote():
$stmt = $db->prepare(“SELECT * FROM users WHERE nome = ?”);$stmt->execute([$userInput]);
- Implementar a validação do comprimento da entrada: Restringir o comprimento das entradas do usuário a valores razoáveis
- Considere as permissões do banco de dados: Aplique o princípio do privilégio mínimo aos usuários do banco de dados
Conclusão
A CVE-2022-31631 representa uma combinação explosiva de fatores de risco à segurança: uma vulnerabilidade crítica de injeção de SQL, divulgada logo após o PHP 7 ter atingido o status de fim de vida útil (EOL), afetando um mecanismo de segurança comum no qual os desenvolvedores confiam. As organizações que utilizam o PHP 7 enfrentam uma escolha difícil entre a migração imediata (com possíveis problemas de compatibilidade) ou continuar operando sistemas vulneráveis.
Nossos serviços de suporte estendido ao PHP 7 oferecem uma terceira opção: continue executando suas aplicações em PHP 7 com confiança, sabendo que vulnerabilidades críticas de segurança, como a CVE-2022-31631, foram corrigidas por nossos patches de segurança.

