Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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-14669 — Exploit de prova de conceito para CVE-2026-14669, um estouro de buffer heap na abreviação de fuso horário do to_char() do PostgreSQL que possibilita RCE por meio de vazamento de informações e cadeia ROP; inclui laboratório Docker e PoC automatizada. | Kitploit
Ferramentas/GitHubGitHub/hackspeak/cve-2026-14669
Análise de VulnerabilidadesExploraçãoTestes de PenetraçãoDesenvolvimento de PayloadsSegurança de Banco de DadosExploração de BináriosLabs e Prática
GitHubhackspeak/cve-2026-14669

CVE-2026-14669

Exploit de prova de conceito para CVE-2026-14669, um estouro de buffer heap na abreviação de fuso horário do to_char() do PostgreSQL que possibilita RCE por meio de vazamento de informações e cadeia ROP; inclui laboratório Docker e PoC automatizada.

Ver Repositório
3114há 1 mêsAinda 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-14669 - Estouro de buffer de heap na abreviação de fuso horário da função to_char() do PostgreSQL

A função to_char() do PostgreSQL possui uma vulnerabilidade de estouro de buffer de heap ao processar a formatação de fuso horário. Um atacante pode, ao definir uma abreviação de fuso horário POSIX excessivamente longa, acionar uma gravação fora dos limites em um buffer fixo de 25 bytes e, combinando com vazamento de informações e uma cadeia ROP, obter execução remota de código.

Informações da Vulnerabilidade

  • ID do CVE: CVE-2026-14669
  • Pontuação CVSS: 8.8 (Alto)
  • Tipo de vulnerabilidade: Estouro de buffer de heap → Execução remota de código
  • Componente afetado: Função to_char(timestamptz) do PostgreSQL
  • Equipe que descobriu: V12 Security

Versões Afetadas

Série do PostgreSQLVersões afetadas
18.x18.0 – 18.5
17.x17.0 – 17.10
16.x16.0 – 16.14
15.x15.0 – 15.18
14.x14.0 – 14.23

Versões Corrigidas

  • PostgreSQL 18.6+
  • PostgreSQL 17.11+
  • PostgreSQL 16.15+
  • PostgreSQL 15.19+
  • PostgreSQL 14.24+

Princípio da Vulnerabilidade

No caminho de processamento DCH_TZ / DCH_tz em formatting.c, é utilizado um buffer fixo de 25 bytes na pilha para armazenar a abreviação do fuso horário, sem qualquer verificação de comprimento da entrada. Quando a abreviação do fuso horário excede 24 bytes, strcpy() grava fora dos limites no heap.

Caminho de acionamento:

SET TIME ZONE '<超长缩写>+00';
SELECT to_char(now()::timestamptz, 'TZ');
  ↓
DCH_to_char() → DCH_from_char_action()
  ↓
strcpy(buf, tmtcTzn(...))  ← 堆溢出

Condições de Exploração

  • Quaisquer credenciais de autenticação válidas do banco de dados (privilégio mínimo de nível USAGE)
  • Porta do banco de dados acessível via TCP
  • Capacidade de executar instruções SQL

Cadeia de Exploração Completa

O PoC da V12 Security contém três etapas:

Etapa 1: Vazamento de Informações

Através do estouro de heap, os objetos de heap adjacentes são corrompidos para vazar o endereço base do PIE e ponteiros de heap, a fim de quebrar o ASLR.

Etapa 2: Construção da Cadeia ROP

Usa objetos grandes (large objects) ou campos bytea para dispor a cadeia de gadgets ROP no heap.

Etapa 3: Sequestro do Fluxo de Controle

Um segundo estouro sobrescreve o ponteiro de função no heap, saltando para a cadeia ROP e executando comandos arbitrários (com os privilégios do usuário postgres).

Arquivos do PoC

  • poc.py - script de exploração completo (210 linhas, para PostgreSQL 19beta1)
  • requirements.txt - dependências Python (psycopg, pwntools)
  • docker-compose.yml - ambiente de teste da vulnerabilidade

Como Usar

1. Iniciar o ambiente de teste

docker-compose up -d

Aguarde a inicialização completa do contêiner (verificação de saúde concluída):

docker logs pg-tzlab

2. Instalar dependências

pip install -r requirements.txt

3. Executar o PoC

python3 poc.py

Conecta por padrão em 127.0.0.1:55432, com usuário postgres e senha postgres.

Após a exploração bem-sucedida, a saída da execução do comando pode ser vista nos logs do contêiner:

docker logs pg-tzlab | grep PWNED

4. Configuração personalizada

Edite as constantes em poc.py:

  • HOST, PORT - endereço do alvo
  • DEFAULT_COMMAND - comando a ser executado

⚠️ Importante: Este PoC possui endereços de deslocamento (offsets) codificados para um build específico (imagem Docker postgres:19beta1 sha256:a6bdd01...). Outras versões exigem a relocalização dos gadgets.

Medidas de Mitigação

  1. Atualize imediatamente para uma versão corrigida (a medida mais eficaz)
  2. Isolamento de rede: restrinja a porta do banco de dados apenas a hosts confiáveis
  3. Minimização de contas: remova contas desnecessárias e force senhas fortes
  4. Monitoramento e alertas: monitore instruções SET TIME ZONE excessivamente longas (> 50 caracteres)

Aviso Legal

⚠️ Este PoC é exclusivamente para pesquisa de segurança, validação de vulnerabilidades e testes defensivos.

  • Execute em um ambiente de teste descartável (laboratório Docker)
  • Não use em ambientes não autorizados ou de produção
  • A exploração causa a queda do processo do servidor-alvo ou o sequestro do fluxo de controle

Ao usar este PoC, você concorda em cumprir as leis e regulamentos locais e os limites de autorização do sistema alvo.

Links de Referência

  • Comunicado de segurança oficial do PostgreSQL
  • Anúncio de lançamento do PostgreSQL
  • Commit de correção upstream
  • Análise técnica da V12 Security
  • Repositório original do PoC

Autor Original

  • PoC original: Equipe V12 Security
  • Repositório original: https://github.com/v12-security/pocs
  • Licença: O repositório upstream não possui arquivo LICENSE; este repositório usa a Licença MIT
  • Este repositório: versão de distribuição espelhada, preservando a autoria original
Baixar ferramenta