Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pgadmin-ai-assistant-sql-injection-cve-2026-17351-lexer-differential-bypass — Proof-of-Concept, der den SQL-Injection-Bypass CVE-2026-17351 im KI-Assistenten von pgAdmin 4 über die sqlparse/PostgreSQL-Lexerdifferenz demonstriert, einschließlich der Zustellung indirekter Prompt-Injection. | Kitploit
Tools/GitHubGitHub/hunt-benito/pgadmin-ai-assistant-sql-injection-cve-2026-17351-lexer-differential-bypass
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungKI-SicherheitDatenbanksicherheit
GitHubhunt-benito/pgadmin-ai-assistant-sql-injection-cve-2026-17351-lexer-differential-bypass

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

pgadmin-ai-assistant-sql-injection-cve-2026-17351-lexer-differential-bypass

Proof-of-Concept, der den SQL-Injection-Bypass CVE-2026-17351 im KI-Assistenten von pgAdmin 4 über die sqlparse/PostgreSQL-Lexerdifferenz demonstriert, einschließlich der Zustellung indirekter Prompt-Injection.

Repository anzeigen
vor 20 TagenNoch nicht geprüft

CVE-2026-17351 — pgAdmin 4 KI-Assistent Read-Only-Bypass durch Lexer-Differenz

PoC für CVE-2026-17351, einen kritischen (CVSS 9.0) SQL-Injection-Bypass im KI-Assistenten von pgAdmin 4.

Zusammenfassung der Schwachstelle

pgAdmin 4 Versionen 9.13 bis 9.16 verwenden die Python-Bibliothek sqlparse, um zu validieren, dass LLM-generierte SQL-Abfragen einzelne, reine Leseanweisungen sind. Unter PostgreSQL standard_conforming_strings = on (der Standard seit PostgreSQL 9.1) sind sich sqlparse und PostgreSQL uneinig darüber, wie Backslashes innerhalb von String-Literalen behandelt werden. Dies ermöglicht es einem Angreifer, eine Nutzlast zu erstellen, die die Validierung von sqlparse als einzelnes SELECT besteht, aber in PostgreSQL als vier Anweisungen ausgeführt wird – einschließlich eines COMMIT, das die Read-Only-Transaktion beendet, sowie nachfolgender Schreibanweisungen.

Nutzlast

root@kitploit:~
SELECT '\';COMMIT;CREATE TABLE pwn(x int);SELECT 1 --'
  • sqlparse sieht ein SELECT mit einem großen String-Literal → Validierung besteht
  • PostgreSQL sieht: SELECT '\' + COMMIT + CREATE TABLE pwn(x int) + SELECT 1 --'

Zustellung

Die Nutzlast wird per indirekter Prompt-Injection zugestellt: Der Angreifer platziert sie in einem Datenbankobjekt (Spaltenkommentar, Zeilenwert, View-Definition), das der KI-Assistent liest. Wenn ein legitimer Benutzer eine Frage stellt, liest das LLM die manipulierten Daten und gibt sie als execute_sql_query-Toolaufruf aus.

Dateien

DateiBeschreibung
poc.pyDemonstriert die Lexer-Differenz: sqlparse-Validierung besteht, Simple Query Protocol führt mehrere Anweisungen aus, Extended Query Protocol blockiert sie
prompt_injection_demo.pySimuliert die vollständige Angriffskette: Nutzlast als Spaltenkommentar platziert → simuliertes LLM liest sie → Validierung besteht → Ausführung

Voraussetzungen

root@kitploit:~
pip install psycopg[binary] sqlparse

Außerdem benötigen Sie eine laufende PostgreSQL-Instanz (14+):

root@kitploit:~
docker run -d --name pg-poc \
    -e POSTGRES_PASSWORD=secret \
    -e POSTGRES_DB=testdb \
    -p 5433:5432 \
    postgres:18

Verwendung

root@kitploit:~
# Haupt-PoC — Demonstration der Lexer-Differenz
python3 poc.py

# Demo der Prompt-Injection-Zustellung
python3 prompt_injection_demo.py

# Benutzerdefinierte Verbindungsparameter
python3 poc.py --host 10.0.0.5 --port 5432 --user postgres --password mypw

Die Behebung (pgAdmin 9.17)

Die Behebung erzwingt das Extended Query Protocol von psycopg3, indem:

  1. conn.prepare_threshold = 0 auf der dedizierten Verbindung des LLM gesetzt wird
  2. prepare=True an cursor.execute() übergeben wird

Dadurch wird der eigene Parse-Schritt von PostgreSQL zur Autorität für Anweisungsgrenzen – er lehnt mehrteilige Anweisungstexte strukturell ab, unabhängig davon, wie ein clientseitiger Lexer sie klassifiziert.

Referenzen

  • CVE: https://nvd.nist.gov/vuln/detail/CVE-2026-17351
  • GitHub-Issue: https://github.com/pgadmin-org/pgadmin4/issues/10192
  • Fix-Commit: https://github.com/pgadmin-org/pgadmin4/commit/ef76102bcd1cdb544eb9b4ef18d3382f22b76752
  • Ursprüngliche CVE (CVE-2026-12045): https://nvd.nist.gov/vuln/detail/CVE-2026-12045
  • Gemeldet von: Kai Aizen (SnailSploit)

Haftungsausschluss

Dieser PoC dient ausschließlich Bildungs- und autorisierten Testzwecken.

Tool herunterladen