PHP 7 está vulnerável a uma grave falha de injeção de SQL (CVE-2022-31631)

Os patches do php2shell (CVE-2026-109618 e CVE-2026-109619) para o PHP em fim de vida (EOL) já estão disponíveis. Como as respostas do atendimento de vendas estão mais demoradas do que o normal devido à alta demanda, a maneira mais rápida de obter os pacotes corrigidos é adquirir o ELS para Runtimes on-line (abre em uma nova aba). Leia as perguntas frequentes sobre os patches

Vá direto para um resumo gerado por IA desta postagem do blog

  • Resuma esta postagem com o Perplexity
  • Resuma esta postagem com o Gemini

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:

  1. Vulnerabilidades de injeção de SQL
  2. Acesso não autorizado ao conteúdo do banco de dados
  3. Manipulação ou destruição de dados
  4. Risco de comprometimento total do sistema
  5. 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:

  1. O PHP 7 atingiu o status de fim de vida útil (EOL) pouco antes da divulgação dessa vulnerabilidade
  2. Não há patches oficiais disponíveis por parte dos mantenedores do PHP
  3. 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:

  1. Um invasor identifica um aplicativo web que utiliza PHP com PDO e SQLite
  2. Eles inserem uma sequência excepcionalmente longa em um campo de entrada vulnerável
  3. O aplicativo passa essa string para o método PDO::quote() para sanitização
  4. Devido a um estouro de inteiro, a função de citação não consegue escapar corretamente a string
  5. 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:

  1. Alta pontuação no CVSS (9,1): Indica um problema crítico de segurança com potencial impacto grave
  2. 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
  3. Funcionalidades comuns: O PDO é amplamente utilizado para operações com bancos de dados em aplicativos PHP
  4. Falsa sensação de segurança: Os desenvolvedores acreditam que estão se protegendo contra injeção de SQL ao usar PDO::quote()
  5. 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:

  1. Pacotes corrigidos do PHP 7: Desenvolvemos e testamos exaustivamente pacotes do PHP 7 que corrigem a vulnerabilidade CVE-2022-31631
  2. Suporte multiplataforma: Nossos pacotes corrigidos estão disponíveis tanto para ambientes Windows quanto para Linux
  3. 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:

  1. Aplique nossos patches de segurança: Instale nossos pacotes corrigidos do PHP 7 para se proteger contra essa vulnerabilidade
  2. 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]);

  1. Implementar a validação do comprimento da entrada: Restringir o comprimento das entradas do usuário a valores razoáveis
  2. 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.

 

Resumo
PHP 7 está vulnerável a uma grave falha de injeção de SQL (CVE-2022-31631)
Nome do artigo
PHP 7 está vulnerável a uma grave falha de injeção de SQL (CVE-2022-31631)
Descrição
A CVE-2022-31631, uma vulnerabilidade crítica de injeção de SQL com pontuação CVSS 3 de 9,1, afeta instalações do PHP 7. Saiba mais sobre nossa descoberta
Autor
Nome da editora
TuxCare
Logotipo da editora

Junte-se a mais de 4.500 profissionais de Linux e código aberto!

2 vezes por mês. Sem spam.

Índice
Obtenha as respostas sobre segurança de código aberto de que você precisa

Junte-se a mais de 4.500 profissionais de Linux e código aberto!

2 vezes por mês. Sem spam.