
PoC para CVE-2026-9082 (Drupal SA-CORE-2026-004) SQLi no núcleo do Drupal
Aviso legal: Esta Prova de Conceito destina-se apenas a fins educacionais e de pesquisa. Não utilize este software contra qualquer sistema que você não possua ou para o qual não tenha permissão explícita para testar. O autor não se responsabiliza por uso indevido ou danos causados por este projeto.
Uma Prova de Conceito (poc.py) da CVE-2026-9082 (Drupal SA-CORE-2026-004), uma vulnerabilidade crítica de injeção de SQL no núcleo do Drupal que pode permitir que um atacante envie consultas SQL arbitrárias quando o Drupal estiver configurado para usar um backend de banco de dados PostgreSQL.
Ela decorre do tradutor de condições de consulta de entidades PostgreSQL do núcleo do Drupal, onde as chaves de array em um filtro IN de consulta de entidade podem ser manipuladas por um atacante para injetar fragmentos SQL arbitrários.
Esta PoC interage com a camada JSON:API do Drupal, injetando uma condição SQL malformada que resulta em um Erro Interno do Servidor HTTP 500 nas versões vulneráveis, enquanto as versões corrigidas sanitizam corretamente as chaves de consulta e impedem a exceção.
ID do CVE: CVE-2026-9082
ID do SA-CORE: SA-CORE-2026-004
Pontuação CVSS: 6.5 (MÉDIO)
Vetor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Categoria: Injeção de SQL
Impacto: Contorno de autenticação, divulgação de informações, escalonamento de privilégios, execução remota de código (dependendo da configuração)
Versões Afetadas (Drupal core):
>= 8.9.0, < 10.4.10>= 10.5.0, < 10.5.10>= 10.6.0, < 10.6.9>= 11.0.0, < 11.1.10>= 11.2.0, < 11.2.12>= 11.3.0, < 11.3.10Basta executar
make
Fornecemos um laboratório de reprodução docker-compose usando :
Ambas as configurações incluem:
/jsonapi/node/article sem autenticação (configuração comum em muitos sites Drupal)article para garantir que a filtragem de /jsonapi/node/article funcione de forma realista
Os arquivos do site e o conteúdo do banco de dados já estão preparados em sites.tar.gz e init.sql.gzNo momento da escrita, o Drupal 11.2.12 ainda não está disponível no Docker Hub, então construímos uma imagem personalizada instalada com composer