CVE-2026-12046: pgAdmin 4: falta de autenticação no SQL Editor leva a desserialização insegura
Dois endpoints do SQL Editor do pgAdmin 4 em modo servidor não exigiam login e alcançam uma rotina de desserialização pickle, afetando versões a partir da 6.9 e anteriores à 9.16. A execução remota de código exige ainda conhecer a SECRET_KEY do Flask e ter escrita no diretório de sessões, então a falha amplia um comprometimento parcial já existente. Não há exploração confirmada nas fontes consultadas.
Visão geral
A CVE-2026-12046 é uma falha de ausência de autenticação (CWE-306) no módulo SQL Editor do pgAdmin 4. Duas rotas que alteram estado, uma que encerra uma sessão do SQL Editor e outra que atualiza sua conexão, eram as únicas do módulo sem o decorador @pga_login_required. Ambos os caminhos acabam desserializando, com o pickle do Python, dados armazenados na sessão do usuário, um padrão de desserialização de dados não confiáveis (CWE-502). Em modo servidor, essas rotas podiam ser acessadas sem sessão autenticada no pgAdmin.
Impacto
A CNA classifica o problema como crítico: pontuação CVSS 3.1 de 9.0 (vetor AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H) e CVSS 4.0 de 9.5. A alta complexidade de ataque reflete pré-condições relevantes: para executar código, o atacante também precisa forjar um arquivo de sessão no servidor com um objeto serializado malicioso, o que exige conhecer a SECRET_KEY do Flask do pgAdmin e ter permissão de escrita no diretório de sessões do host. Esta falha não concede nenhuma das duas. Quando essas condições já existem por outro meio (má configuração, vazamento de configuração, comprometimento anterior), a verificação ausente se torna o último passo para execução de código sem autenticação no processo do pgAdmin, com os privilégios da conta do sistema que o executa.
Produtos e versões afetados
- pgAdmin 4 a partir da versão 6.9 e anteriores à 9.16.
- Apenas implantações em modo servidor são afetadas. No modo desktop, o pgAdmin reautentica o usuário a cada requisição, impedindo acesso não autenticado às rotas.
Status de exploração
A vulnerabilidade não consta do catálogo Known Exploited Vulnerabilities da CISA e não há exploração confirmada nas fontes consultadas. O registro não traz pontuação EPSS.
Correção e mitigação
- Atualize o pgAdmin 4 para a 9.16 ou posterior; a faixa afetada termina antes da 9.16. A correção adiciona o decorador de login obrigatório às duas rotas, rejeitando requisições não autenticadas antes da desserialização (commit, issue 10072).
- Proteja a SECRET_KEY do Flask: mantenha arquivos de configuração fora de locais compartilhados ou expostos e troque a chave se houver suspeita de vazamento.
- Restrinja as permissões do diretório de sessões para que apenas a conta de serviço do pgAdmin possa escrever nele.
- Não exponha instâncias em modo servidor diretamente à internet; use VPN, proxy reverso com autenticação ou listas de permissão de rede.
- Execute o pgAdmin com uma conta de privilégios mínimos para limitar o impacto de uma eventual execução de código.
Orientações de detecção
- Revise logs do servidor web ou proxy reverso em busca de requisições às rotas de fechamento e atualização de conexão do SQL Editor sem sessão autenticada, principalmente de origens desconhecidas.
- Monitore o diretório de sessões para criação ou alteração inesperada de arquivos por contas diferentes da do serviço pgAdmin.
- Observe processos filhos ou conexões de saída incomuns iniciados pelo processo do pgAdmin.
- Verifique indícios de vazamento da SECRET_KEY ou de arquivos de configuração.
Limitações das informações disponíveis
O registro não contém dados de EPSS nem SSVC. Não descreve forma de obter a SECRET_KEY ou acesso de escrita ao diretório de sessões, e não referencia relatos públicos de exploração. A versão corrigida é inferida a partir do fim da faixa afetada (antes da 9.16); confira as notas de versão do projeto para confirmar o pacote da sua distribuição.
Perguntas frequentes
Quais versões do pgAdmin 4 são afetadas pela CVE-2026-12046?
pgAdmin 4 a partir da 6.9 e anteriores à 9.16, apenas quando executado em modo servidor.
Um atacante sem autenticação consegue executar código só com esta falha?
Não. A execução de código também exige conhecer a SECRET_KEY do Flask do pgAdmin e ter escrita no diretório de sessões, o que esta falha não fornece.
A CVE-2026-12046 está sendo explorada?
Ela não está no catálogo KEV da CISA e não há exploração confirmada nas fontes consultadas.
Como corrigir?
Atualize para a 9.16 ou posterior, que adiciona a verificação de login às duas rotas, e proteja a SECRET_KEY e as permissões do diretório de sessões.
Esta análise foi redigida com auxílio de IA a partir de dados verificados das fontes e checada automaticamente contra eles.