pgAdmin 4 A ferramenta Importar/Exportar dados constrói uma linha de comando psql \copy (...) interpolando uma consulta SQL fornecida pelo usuário em um modelo Jinja e passando a linha renderizada para psql através do -- comando. Para impedir que um atacante saia do envoltório (...), crie_import_export_job() (route POST /import_export/job/ , portado apenas pela permissão comum de ferramentas_import_export_data) validado a consulta com um parêntesis- balanço escrito à mão, _is_query_parens_balanced(). Esse verificador sempre tratou um backslash antes de uma única citação (\') como escapando da citação, ou seja, como se os strings standard_conform_ estivessem desativados. PostgreSQL tem o padrão_conforming_strings acessado desde então 9.1 ( 2010 ), o padrão em cada versão do PostgreSQL pgAdmin 4 atualmente suporta ( 13 - 18 ); sob esse padrão psql 's próprio \ copy tokenizer trata \ como um caractere comum, por isso uma única citação imediatamente após fechar a string literal. Uma consulta como SELECT 'a\') TO PROGRAM 'echo pwned' x' foi, portanto, aceita como "equilibrada" pelo verificador do pgAdmin (que acreditava que o ) ainda estava dentro da string), enquanto o psql, executar através da linha de comando real renderizada, fecha a string naquele ponto e trata o seguinte ) como o fim da sub- consulta \copy (...) de embalagem, expondo uma cláusula agressor- escolhido para PROGRAM ' ' que o psql executa através de popen() -- independente de um erro de sintaxe posterior na mesma linha. Esta é a mesma classe de erros que CVE- 2025 - 12762 /CVE- 2025 - 13780 (RCE via injeção de meta- comando/ COPY psql durante a restauração do dump do formato PLAIN), atingida através de uma defesa escrita independente em um módulo diferente (Importar/Exportar dados em vez de Restaurar) que tinha seu próprio bug lógico diferente (semântica invertida de retroescapa em vez de uma âncora de regex derrotada pelo BOM). A correção rejeita qualquer backslash dentro de uma única cadeia de letras na consulta, em vez de escolher uma das duas interpretações possíveis do psql. Isto é intencionalmente conservador: porque a interpretação correta do \ depende da configuração de strings standard_conforming_ do servidor- alvo, que o verificador não pode saber de forma confiável no momento da validação, recusando a consulta é mais segura do que adivinhar.

Esta questão afeta o pgAdmin 4: da introdução do _is_query_parens_balanced() antes 9.18. Registro de aconselhamento: GHSA- 3 h 25 - h 4 m 7 - gr 36. Identificadores relacionados: CVE- 2026 - 17566.

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:N/S:C/C:H/I:H/A:H; CVSS_V 4: CVSS: 4.0 /AV:N/AC:L/AT:N/PR:L/UI:N/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- 78. O registro contém 3 suporte de referências nestes tipos: AVISO, WEB.