Pgadmin.org pgAdmin 4: SQL-Injection (CVE-2026-17351)
Veröffentlicht Zuletzt geändert Quellen: BSI, CVE.org
Was ist betroffen, was ist zu tun
Die Behebung von CVE-2026-12045 in pgAdmin 4 9.16 erforderte, dass die vom LLM bereitgestellte Abfrage, die an das execute_sql_query-Werkzeug des AI-Assistenten übergeben wurde, durch sqlparse als genau eine nicht-transaktionssteuernde Anweisung analysiert wird, bevor sie in einem BEGIN TRANSACTION READ ONLY-Wrapper ausgeführt wird. Die Zeichenfolgenlexikalisierung von sqlparse kann mit dem Parser von PostgreSQL selbst nicht übereinstimmen: Bei standard_conforming_strings = on (PostgreSQLs Standard seit 9.1) ist ein Backslash unmittelbar vor einem Anführungszeichen für PostgreSQL ein gewöhnliches Zeichen, aber sqlparse behandelt es als das Escapen des Anführungszeichens.
Aktualisieren Sie Pgadmin.org pgAdmin 4 auf Version 9.17.
- Betroffen
- Pgadmin.org pgAdmin 4
lt 9.13..9.17
- Pgadmin.org pgAdmin 4
- Behoben in
- Pgadmin.org pgAdmin 4
9.17
- Pgadmin.org pgAdmin 4
Unklar, ob und wie Sie betroffen sind? Frage zu dieser Schwachstelle stellen
Metriken
9,4
Priorität
XIEM Effective CVSS: höchste verfügbare CVSS-Bewertung aus NVD- und Herstellerangaben.
Quelle: NVD, CVSS v4
9,0
CVSS v3
Schweregrad Kritisch auf der Skala von 0 bis 10.
Quelle: BSI, CVE.org
0,5 %
EPSS-Score
Niedrig – Modell schätzt < 1 % Ausnutzungs-Wahrscheinlichkeit.
Quelle: FIRST EPSS, Perzentil 41,8
Alle Metriken anzeigen
- Schweregrad
- Kritisch
Priorität (0–325)
Der Priorisierungs-Score ist eine zusammengeführte Kennzahl, die mehrere Einzelsignale zu einer einzigen, handlungsleitenden Rangfolge verdichtet: technische Schwere (CVSS), Ausnutzungswahrscheinlichkeit (EPSS), der Status als bekannt ausgenutzt (KEV) und der Kontext des betroffenen Assets. Ziel ist die Antwort auf die einzig wirklich wichtige Frage im Schwachstellenmanagement: Was zuerst?
Im Glossar lesen- 82.41 Methodik
Exploit-Reife
Ein Exploit ist Code oder eine Technik, die eine konkrete Schwachstelle gezielt ausnutzt, um ein unbeabsichtigtes Verhalten zu erzwingen — etwa Code auszuführen oder Rechte auszuweiten. Er ist das Werkzeug, das aus einer theoretischen Lücke einen praktischen Angriff macht.
Im Glossar lesen- kein öffentlicher PoC bekannt
XIEM Effective CVSS
XIEM® ist das gestufte Managed-Security-Betriebsmodell von NEOSEC und eine eingetragene Marke der NEOSEC GmbH. Es erweitert klassisches SIEM — die zentrale Sammlung, Normalisierung und Korrelation sicherheitsrelevanter Ereignisse — um Endpunkt-Forensik, Netzwerk-Sichtbarkeit und Täuschungstechnik und führt diese zu drei aufeinander aufbauenden Stufen zusammen: Sentry, Orchestrate und Command.
Im Glossar lesen- 9,4 Methodik
CVSS v3
CVSS ist der weltweit verbreitete, offene Standard zur Bewertung der technischen Schwere einer Schwachstelle auf einer Skala von 0 bis 10. Er beschreibt, wie leicht eine Lücke ausnutzbar ist und welchen Schaden sie anrichten kann — nicht jedoch, wie wahrscheinlich ihre tatsächliche Ausnutzung ist. CVSS und das ergänzende EPSS beantworten bewusst unterschiedliche Fragen.
Im Glossar lesen- 9,0
CVSS v4
CVSS ist der weltweit verbreitete, offene Standard zur Bewertung der technischen Schwere einer Schwachstelle auf einer Skala von 0 bis 10. Er beschreibt, wie leicht eine Lücke ausnutzbar ist und welchen Schaden sie anrichten kann — nicht jedoch, wie wahrscheinlich ihre tatsächliche Ausnutzung ist. CVSS und das ergänzende EPSS beantworten bewusst unterschiedliche Fragen.
Im Glossar lesen- 9,4
EPSS-Score
Der EPSS-Score ist der absolute Modell-Output für eine einzelne Schwachstelle: die geschätzte Wahrscheinlichkeit einer realen Ausnutzung in den nächsten 30 Tagen, ausgedrückt als Wert zwischen 0 und 1 (bzw. 0 % bis 100 %). Ein Score von 0,42 bedeutet „das Modell schätzt eine 42-prozentige Chance auf reale Ausnutzung binnen 30 Tagen“.
Im Glossar lesen- 0,5 %
- Niedrig – Modell schätzt < 1 % Ausnutzungs-Wahrscheinlichkeit.
EPSS-Perzentil
Das EPSS-Perzentil ist die relative Einordnung einer Schwachstelle innerhalb aller EPSS-bewerteten CVEs, ausgedrückt als Wert zwischen 0 und 1. Ein Perzentil von 0,90 bedeutet „diese CVE hat einen höheren EPSS-Score als 90 % aller anderen bewerteten CVEs“. Anders als der EPSS-Score ist es keine Wahrscheinlichkeit — sondern eine Positionierung im Ranking.
Im Glossar lesen- 41,8
- Hoch – CVE rangiert über dem Median aller heute bewerteten CVEs (Rang ≥ 36 %).
KEV-Status
Der KEV-Katalog ist eine von der US-Behörde CISA gepflegte Liste von Schwachstellen, für die eine aktive Ausnutzung in der Praxis nachgewiesen ist. Er beantwortet nicht die Frage „wie schwer?“, sondern „wird es bereits angegriffen?“ — und priorisiert damit das Patchen scharf.
Im Glossar lesen- —
- Veröffentlicht
- CISA-Bewertung (SSVC)
- Ausnutzung: keine bekannt · nicht automatisierbar · Auswirkung: vollständig
- Quelle: CISA Vulnrichment, Stand 31. Juli 2026
CWE
CWE ist ein Katalog typischer Schwächen-Arten in Software und Hardware — etwa fehlerhafte Eingabevalidierung, unsichere Speicherbehandlung oder mangelhafte Authentisierung. Während eine CVE eine konkrete Schwachstelle in einem konkreten Produkt benennt, beschreibt eine CWE die zugrunde liegende Fehlerklasse.
Im Glossar lesen- CWE-89, CWE-115
Erkennungsregeln
Für diese Schwachstelle liegt noch keine NEOSEC-Erkennungsregel vor.
Einordnung nach NIS2 und CRA
Regelbasierte Einordnung aus Ausnutzungsstatus und Schweregrad. Sie ersetzt keine Prüfung im Einzelfall.
NIS2
NIS2 ist die EU-Richtlinie (EU) 2022/2555 zur Erhöhung des Cybersicherheitsniveaus in der Union. Sie weitet Pflichten gegenüber der ersten NIS-Richtlinie deutlich aus: mehr Sektoren, verbindliches Risikomanagement, gestufte Meldepflichten und persönliche Verantwortung der Geschäftsleitung.
Im Glossar lesen- Hohe technische Schwere: Bewerten und beheben Sie die Schwachstelle im Schwachstellenmanagement nach Art. 21 Abs. 2 lit. e NIS2 und dokumentieren Sie die Entscheidung.
CRA
Der CRA ist die EU-Verordnung (EU) 2024/2847 mit horizontalen Cybersicherheitsanforderungen an „Produkte mit digitalen Elementen“ — von Industriesteuerungen über Software bis zu vernetzten Verbrauchergeräten. Erstmals müssen Hersteller Sicherheit über den gesamten Produktlebenszyklus gewährleisten, Schwachstellen behandeln und Sicherheitsupdates bereitstellen.
Im Glossar lesen- Ab dem 11.12.2027 verpflichtet Anhang I Teil II CRA Hersteller betroffener Produkte mit digitalen Elementen, Schwachstellen unverzüglich zu behandeln und Sicherheitsupdates bereitzustellen.
ISO/IEC 27001
ISO/IEC 27001 ist der international führende Standard für ein Informationssicherheits-Managementsystem (ISMS). Er beschreibt einen risikobasierten, prozessorientierten Rahmen, um Informationssicherheit systematisch zu planen, umzusetzen, zu überprüfen und zu verbessern.
Im Glossar lesen- Maßnahme A.8.8, Management technischer Schwachstellen: Relevanz für Ihre Systeme bewerten, Behebung einplanen und nachweisen.
Beschreibung
Die Behebung von CVE-2026-12045 in pgAdmin 4 9.16 erforderte, dass die vom LLM bereitgestellte Abfrage, die an das execute_sql_query-Werkzeug des AI-Assistenten übergeben wurde, durch sqlparse als genau eine nicht-transaktionssteuernde Anweisung analysiert wird, bevor sie in einem BEGIN TRANSACTION READ ONLY-Wrapper ausgeführt wird. Die Zeichenfolgenlexikalisierung von sqlparse kann mit dem Parser von PostgreSQL selbst nicht übereinstimmen: Bei standard_conforming_strings = on (PostgreSQLs Standard seit 9.1) ist ein Backslash unmittelbar vor einem Anführungszeichen für PostgreSQL ein gewöhnliches Zeichen, aber sqlparse behandelt es als das Escapen des Anführungszeichens. Eine Payload wie SELECT '\';COMMIT;CREATE TABLE pwn(x int);SELECT 1 --' wird daher von sqlparse's Validator als eine einzelne SELECT-Anweisung analysiert, während PostgreSQL sie als vier Anweisungen ausführt: die eingeschleuste COMMIT-Anweisung beendet die umschließende read-only-Transaktion und das nachfolgende ROLLBACK wird zu einem No-op. Dies führt zur erneuten Einführung des gleichen Schreib-/RCE-Bypasses, den CVE-2026-12045 schließen sollte, der über dieselbe indirekte Prompt-Injection-Lieferung (ein Angreifer pflanzt die Payload in jedes Objekt, das der AI-Assistent lesen kann; das LLM gibt sie als Werkzeugaufruf aus) erreichbar ist. Ein ursprünglicher Kandidatenfix führte die Abfrage mit psycopg's execute(..., prepare=True) aus, um zu erzwingen, dass der Parse-Schritt von PostgreSQL selbst (erweitertes Anfragenprotokoll) unabhängig von sqlparse's Klassifizierung mehrere Textanweisungen ablehnt. Dieser Kandidatenfix funktioniert nicht wie eingereicht: psycopg3's PrepareManager ignoriert das prepare-Argument stillschweigend, wenn die Verbindungsvorbereitungsschwelle None ist, was der Standard für jede Serververbindung von pgAdmin ist (das pro-Server "Vorbereitungsschwellenwert"-Feld bleibt leer, es sei denn, ein Administrator setzt es explizit) – psycopg3 fällt zurück auf das einfache Anfragenprotokoll, den gleichen mehrfach-anweisungsfähigen Pfad, den der Bypass ausnutzt, sodass der Kandidatenfix nichts in jeder realen Standardkonfiguration schließt. Die korrigierte Behebung setzt conn.prepare_threshold = 0 direkt auf die dedizierte, einmalige read-only-Verbindung, die das AI-Assistenten-Werkzeug öffnet, was strukturell den erweiterten Anfragenprotokollpfad unabhängig von jeder Serverkonfiguration erzwingt. Überprüft an einem Live-PostgreSQL 18-Instanz: Die Payload wird erfolgreich unter dem prepare_threshold=None (Standard) Verhalten ausgeführt und mit "cannot insert multiple commands into a prepared statement" abgelehnt, sobald prepare_threshold=0 auf dieser Verbindung festgelegt ist. Dieses Problem betrifft pgAdmin 4: von Version 9.13 bis einschließlich 9.16.
Quelle: BSI WID Portal, BSI CSAF, NVD (NIST), cvelistv5
Betroffene Produkte
Betroffen sind die folgenden Versionen. Ältere Stände derselben Reihe sind ebenfalls verwundbar, sofern nicht anders angegeben.
| Betroffene Versionen | Behoben in | ||
|---|---|---|---|
| pgadmin.org | pgAdmin 4 |
|
|
| pgadmin | pgadmin_4 |
|
|
| Open Source | pgAdmin |
|
|
Hersteller und Produkte
Weakness-Klassen (CWE)
CWE-89Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Base
The product constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component. Without sufficient removal or quoting of SQL syntax in user-controllable inputs, the generated SQL query can cause those inputs to be interpreted as SQL instead of ordinary user data.
Eintrag bei MITRE CWE-89CWE-115Misinterpretation of Input
Base
The product misinterprets an input, whether from an attacker or another product, in a security-relevant fashion.
Eintrag bei MITRE CWE-115
Quellen & Referenzen
- github.compgadmin-org/pgadmin4/issues/10192Issue-Tracker, Issue-Tracker, Patch, Herstellerhinweis
- github.compgadmin-org/pgadmin4/commit/ef76102bcd1cdb544eb9b4ef18d3382f22b…Patch, Patch
- github.compgadmin-org/pgadmin4/commit/bf4792444446f0e7ab721d23cbd6bfe6afa…related, Patch
Änderungen an der CVE
Wer diese CVE wann geändert hat: die NVD (Analyse, betroffene Produkte, CVSS), der Herausgeber der CVE (CNA) und ergänzende Stellen wie CISA (ADP).
Erstanalyse durch die NVDNVD
Neu als betroffen eingetragen:- pgAdmin Project pgAdmin 4 (9.13 – vor 9.17)
CVSS V3.1: AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
5 Einzeländerungen im Original anzeigen
Einzeländerungen dieses Ereignisses im Original der NVD Art Aktion Vorher Nachher CVSS ergänzt —AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:HProduktkonfiguration ergänzt —OR *cpe:2.3:a:pgadmin:pgadmin_4:*:*:*:*:*:postgresql:*:* versions from (including) 9.13 up to (excluding) 9.17Referenztyp ergänzt —PostgreSQL: https://github.com/pgadmin-org/pgadmin4/commit/bf4792444446f0e7ab721d23cbd6bfe6afaa7a8b Types: PatchReferenztyp ergänzt —PostgreSQL: https://github.com/pgadmin-org/pgadmin4/commit/ef76102bcd1cdb544eb9b4ef18d3382f22b76752 Types: PatchReferenztyp ergänzt —PostgreSQL: https://github.com/pgadmin-org/pgadmin4/issues/10192 Types: Issue Tracking, Patch, Vendor AdvisoryKennung der Quelle: nvd@nist.gov
Eintrag geändertCISA ADP
CISA-Einschätzung (SSVC): Ausnutzung: keine bekannt, automatisierbar: nein
Einzeländerung im Original anzeigen
Einzeländerungen dieses Ereignisses im Original der NVD Art Aktion Vorher Nachher SSVC-Einschätzung ergänzt —{"id":"CVE-2026-17351","role":"CISA Coordinator","options":[{"exploitation":"none"},{"automatable":"no"},{"technicalImpact":"total"}],"version":"2.0.3","timestamp":"2026-07-31T17:00:07.232339Z"}Kennung der Quelle: 134c704f-9b21-4f2e-91b3-4a467353bcc0
Neu erfasstf86ef6dc…
CVSS V4.0: AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
CVSS V3.1: AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Schwachstellentyp: CWE-89, CWE-115
Beschreibung erfasst oder geändert
9 Einzeländerungen im Original anzeigen
Einzeländerungen dieses Ereignisses im Original der NVD Art Aktion Vorher Nachher Betroffene Versionen (Herausgeber) ergänzt —pgAdmin 4Beschreibung ergänzt —The fix for CVE-2026-12045 in pgAdmin 4 9.16 required the LLM-supplied query passed to the AI Assistant's execute_sql_query tool to parse, via sqlparse, as exactly one non-transaction-control statement before running it inside a BEGIN TRANSACTION READ ONLY wrapper. sqlparse's string-literal lexing can disagree with PostgreSQL's own parser: under standard_conforming_strings = on (PostgreSQL's default since 9.1), a backslash immediately before a quote is an ordinary character to PostgreSQL, but sqlparse treats it as escaping the quote. A payload such as SELECT '\';COMMIT;CREATE TABLE pwn(x int);SELECT 1 --' therefore parses as a single SELECT to sqlparse's validator, while PostgreSQL executes it as four statements: the smuggled COMMIT ends the wrapping read-only transaction, and the trailing ROLLBACK becomes a no-op. This reintroduces the same write/RCE bypass CVE-2026-12045 was meant to close, reachable via the same indirect prompt-injection delivery (an attacker plants the payload in any object the AI Assistant may read; the LLM emits it as a tool call). An initial candidate fix ran the query with psycopg's execute(..., prepare=True), intending to force PostgreSQL's own Parse step (extended query protocol) to reject multi-statement text regardless of sqlparse's classification. This candidate fix does not work as submitted: psycopg3's PrepareManager silently ignores the prepare argument whenever the connection's prepare_threshold is None, which is pgAdmin's default for every server connection (the per-server "Prepare threshold" field is blank unless an administrator explicitly sets it) -- psycopg3 falls back to the simple query protocol, the same multi-statement-capable path the bypass exploits, so the candidate fix closes nothing on any real-world default configuration. The corrected fix sets conn.prepare_threshold = 0 directly on the dedicated, single-use read-only connection the AI Assistant tool opens, structurally forcing the extended query protocol independent of any server-level configuration. Verified against a live PostgreSQL 18 instance: the payload executes successfully under the prepare_threshold=None (default) behavior, and is rejected with "cannot insert multiple commands into a prepared statement" once prepare_threshold=0 is set on that connection. This issue affects pgAdmin 4: from 9.13 before 9.17.CVSS ergänzt —AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV: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:XCVSS ergänzt —AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:HSchwachstellentyp (CWE) ergänzt —CWE-89Schwachstellentyp (CWE) ergänzt —CWE-115Referenz ergänzt —https://github.com/pgadmin-org/pgadmin4/commit/bf4792444446f0e7ab721d23cbd6bfe6afaa7a8bReferenz ergänzt —https://github.com/pgadmin-org/pgadmin4/commit/ef76102bcd1cdb544eb9b4ef18d3382f22b76752Referenz ergänzt —https://github.com/pgadmin-org/pgadmin4/issues/10192Kennung der Quelle: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
Eine Übersetzung der NVD in eine andere Sprache ist ausgeblendet.
Verknüpfte Advisories
Badge einbetten
Zeigen Sie Schweregrad und KEV-Status dieser Schwachstelle auf Ihrer Seite – mit Link hierher. Das Bild wird stündlich aktualisiert.
<a href="https://intel.neosec.eu/cve/CVE-2026-17351"><img src="https://intel.neosec.eu/badge/cve/CVE-2026-17351.svg" alt="CVE-2026-17351 – NEOSEC Intel" height="20"></a>