A correção para CVE- 2026 - 12045 no pgAdmin 4 9.16 A consulta fornecida pelo LLM foi passada para a ferramenta execut_sql_query do AI Assistant para analisar, via sqlparse, como exatamente uma instrução de não-controle de transação antes de executar dentro de uma embalagem BEGIN TRANSACTION SOMENTE LER. A lexagem literal de string do sqlparse pode discordar do próprio analisador do PostgreSQL: sob standard_conform_strings = on (o padrão do PostgreSQL desde que 9.1 ), um backslash imediatamente antes de uma citação é um caractere comum ao PostgreSQL, mas sqlparse trata- o como escapando da citação. Uma carga útil como SELECTION '\'; COMMIT; CREATE TABLE pwn( x int);SELECTION 1 -- ', portanto, analisa como um único SELECT para o validador do sqlparse, enquanto o PostgreSQL executa- lo como quatro declarações: o COMMIT contrabandeado termina a transação de apenas leitura de embalagem, e o ROLLBACK se torna um não- op. Isto reintroduz o mesmo bypass de gravação/ RCE CVE- 2026 - 12045 foi feito para fechar, acessível através da mesma entrega indireta de injeção prompta (um atacante planta a carga útil em qualquer objeto que o assistente de IA possa ler; o LLM emite- a como uma chamada de ferramenta). Uma correção inicial do candidato executou a consulta com o execute do psycopg(..., prepare=True), tendo a intenção de forçar o próprio passo do Parse PostgreSQL (protocolo de consulta estendida) a rejeitar texto de declarações múltiplas independentemente da classificação do sqlparse. Esta correção do candidato não funciona como enviado: psycopg 3 's PrepareManager ignora silenciosamente o argumento de preparação sempre que o preparo_threshold da conexão é Nenhum, que é padrão do pgAdmin para cada conexão do servidor (o campo "Prepare limiar" por servidor está em branco a menos que um administrador o definisse explicitamente) -- psycopg 3 volta ao protocolo de consulta simples, o mesmo caminho multi- declarações- capaz de explorar, para que o candidato corrigir nada em qualquer configuração padrão do mundo real.
A correção corrigida define o conn.prepare_threshold = 0 diretamente na conexão dedicada, de um único uso, a ferramenta AI Assistant abre, forçando estruturalmente o protocolo de consulta estendido independente de qualquer configuração de nível de servidor. Verificado contra um PostgreSQL ao vivo 18 instância: a carga útil executa com sucesso sob o comportamento prepare_threshold=Nenhuma (predefinido), e é rejeitada com "não é possível inserir vários comandos em uma instrução preparada" uma vez prepare_threshold= 0 está definido nessa conexão. Esta questão afeta o pgAdmin 4: from 9.13 antes 9.17.
Registro de aconselhamento: GHSA-v 5 gm- 27 gp- 4 f 7 w. Identificadores relacionados: CVE- 2026 - 17351. Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 31 T 18: 32: 17.000 Z e lista a sua última modificação como 2026 - 07 - 31 T 18: 32: 17.000 Z.
Gravidade: Crítico. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H; CVSS_V 4: CVSS: 4.0 /AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/África do Sul:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X.
Software afetado: o registro de aconselhamento não fornece um pacote normalizado ou faixa de versões.
Classificação e evidência: identificadores de fraqueza CWE- 89. O registro contém 4 suporte de referências nestes tipos: AVISO, WEB.