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
postgresql-cve-2026-14662 — Vulnerabilidade de escrita fora dos limites encontrada na pesquisa de texto completo (tsvector/tsquery) do PostgreSQL CVE-2026-14662, registro da verificação executando lado a lado no Docker as versões antes da correção (18.4) e após a correção (18.6), e material de apresentação | Kitploit
Ferramentas/GitHubGitHub/kihara-1/postgresql-cve-2026-14662
Análise de VulnerabilidadesFuzzingPapers e PesquisaAprendizado e EducaçãoRecursos CuradosSegurança de Banco de Dados
GitHubkihara-1/postgresql-cve-2026-14662

postgresql-cve-2026-14662

Vulnerabilidade de escrita fora dos limites encontrada na pesquisa de texto completo (tsvector/tsquery) do PostgreSQL CVE-2026-14662, registro da verificação executando lado a lado no Docker as versões antes da correção (18.4) e após a correção (18.6), e material de apresentação

Ver Repositório
1há 1 diaAinda 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

Rastreando o CVE-2026-14662 — Vulnerabilidade de escrita fora dos limites na busca de texto completo do PostgreSQL

Este é um registro de como investiguei o CVE-2026-14662, encontrado nos tipos de dados de busca de texto completo do PostgreSQL (tsvector / tsquery), executando simultaneamente as versões corrigida (18.4) e não corrigida (18.6) em Docker e observando de fato a diferença de comportamento.

Foi compilado para fins de aprendizado em segurança e inclui também os materiais da apresentação.

Resumo desta vulnerabilidade

ItemConteúdo
CVECVE-2026-14662
Alvotsvector / tsquery do PostgreSQL
TipoTamanho de alocação insuficiente e escrita fora dos limites devido a estouro de inteiro (integer wraparound)
CVSS8.8 / 10.0 (Alto)
Data de divulgação2026-08-13
Versões corrigidas18.5, 17.11, 16.15, 15.19, 14.24

A cadeia de fraquezas tem a seguinte forma.

root@kitploit:~
CWE-190 (Estouro de inteiro) → CWE-131 (Cálculo incorreto do tamanho do buffer) → CWE-787 (Escrita fora dos limites)
=Causa raiz                                                        =Impacto final

Estrutura do repositório

root@kitploit:~
.
├── docs/
│   └── presentation.md   Materiais da apresentação (explicação da vulnerabilidade + explicação das CWEs)
└── docker/
    ├── README.md         Como usar o ambiente de reprodução
    ├── docker-compose.yml
    ├── init/             SQL de inicialização comum aplicado a ambas as versões
    ├── test/             PoC e SQL de demonstração
    └── run.sh            Inicialização → execução do PoC → exibição dos resultados

Como testar

Se você tiver Docker e Docker Compose, basta o seguinte para reproduzir.

root@kitploit:~
cd docker
./run.sh

Os contêineres das versões 18.4 e 18.6 serão iniciados, o mesmo SQL de inicialização será aplicado a ambos e, em seguida, o mesmo PoC será executado em ambos, exibindo os resultados lado a lado. Consulte docker/README.md para obter detalhes.

Resultados observados

TestePostgreSQL 18.4 (antes da correção)PostgreSQL 18.6 (após a correção)
Repetir auto-OR de tsquerySucesso sem erros até 18 vezes (final: 8.650.748 bytes)ERROR: tsquery is too large na 17ª vez
Matriz de palavras com comprimento total de 1.200.000 bytesConclui com sucessoERROR: string is too long for tsvector (1200000 bytes, max 1048575 bytes)
Uma única palavra de 3.000 bytesConclui com sucessoERROR: word is too long (3000 bytes, max 2046 bytes)

Antes da correção, dados que excedem o limite da representação interna (MAXSTRPOS = 1.048.575, derivado de um campo de bits de 20 bits) são aceitos sem gerar nenhum erro.

Além disso, o motivo pelo qual a versão 18.6 para exatamente na "17ª vez" pode ser explicado por cálculo, e confirmamos que o valor teórico e o valor medido coincidem byte a byte (detalhes nos materiais da apresentação).

Sobre o código-fonte do próprio PostgreSQL

Para verificar as diferenças, usei um clone do repositório oficial do PostgreSQL, mas como o tamanho é grande (185MB cada), não os incluí neste repositório. Se necessário, obtenha-os da seguinte forma.

root@kitploit:~
git clone --branch REL_18_4 --depth 1 https://github.com/postgres/postgres.git postgres-18.4
git clone --branch REL_18_6 --depth 1 https://github.com/postgres/postgres.git postgres-18.6

Os arquivos que receberam a correção são os três seguintes.

  • src/backend/utils/adt/tsquery_util.c
  • src/backend/utils/adt/tsvector.c
  • src/backend/utils/adt/tsvector_op.c

Avisos

  • O PoC incluído aqui serve para confirmar que as verificações de limite funcionam na versão corrigida, em relação a uma vulnerabilidade já corrigida e divulgada publicamente. Não inclui exploits de execução de código arbitrário.
  • Execute dentro de um contêiner Docker descartável. Não execute em ambientes de produção.
  • A classificação de CWE neste repositório é uma análise minha baseada no texto do aviso oficial (o aviso oficial não especifica números de CWE).

Referências

  • Aviso oficial do CVE-2026-14662
  • CWE-787: Out-of-bounds Write
  • CWE-190: Integer Overflow or Wraparound
  • CWE-131: Incorrect Calculation of Buffer Size
Baixar ferramenta