Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
grafana-gitsync-dns-rebind — Grafana OSS 13.2.3 – Hoch – Remote – SSRF – Git Sync URLValidator ist nur Admission-DNS | Kitploit
Tools/GitHubGitHub/abraxas/grafana-gitsync-dns-rebind
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsRed TeamingLabs & Praxis
GitHubabraxas/grafana-gitsync-dns-rebind

grafana-gitsync-dns-rebind

Grafana OSS 13.2.3 – Hoch – Remote – SSRF – Git Sync URLValidator ist nur Admission-DNS

Repository anzeigen
vor 4 TagenNoch 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

Abraxas Labs - grafana-gitsync-dns-rebind

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  grafana-gitsync-dns-rebind

grafana-gitsync-dns-rebind

Klasse: SSRF Reichweite: Remote

Grafana OSS 13.2.3 (6193dc0) - Grafana Labs

Git Sync URLValidator prüft den Host der Repository-URL bei der Zulassung. nanogit / Test lösen später erneut auf, ohne IP-Pinning. isBlockedIP umfasst nur Loopback, RFC1918, Link-Local und Unspecified. Das Literal 0.0.0.1 ist nicht blockiert. Ein Hostname, der zum Validierungszeitpunkt öffentlich ist, kann für den Clone-GET auf RFC1918 umgebunden werden.

Der Org-Admin-Test einer rebindenden Git-URL veranlasst Grafana, einen internen Host per GET abzurufen, den der Validator eigentlich ablehnen sollte.

IDnoch keine CVE
KlasseSSRF (DNS-Rebind / 0.0.0.0/8-Lücke)
ReichweiteRemote (Org-Admin repositories:create)
CWECWE-918 / CWE-367
CVSSHigh: 7.7 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N
ProduktGrafana OSS
Betroffen13.2.3 (6193dc0); Git Sync standardmäßig aktiviert
AuthOrg-Admin (repositories:create / :write). Nicht Viewer/Editor-Erstellung.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Der Akteur ist Org-Admin, kein Fremder. Org-Admin kann in OSS bereits DataSources auf interne URLs zeigen lassen. Dieser Rest ist eine Umgehung des Git-Sync-URLValidators, der diese Klasse für Repository-URLs schließen sollte.

PrivilegMethode / SinkRecon / Integrität / VerfügbarkeitLab-belegt oder abgeleitet
Grafana dazu bringen, eine rebindende Git-URL per GET abzurufenOrg-Admin POST .../repositories/{name}/test mit spec.git.url=http://git.lab/...Recon (ausgehendes HTTP aus dem Grafana-Prozess)Lab-belegt. DNS A1 öffentlich, später A RFC1918. Rebind-Oracle hits=3, Witness im Body
Eine literale 0.0.0.1-Git-URL erreichenDerselbe Test mit http://0.0.0.1:18080/lab/gitsync.gitReconLab-belegt, bei der Zulassung nicht blockiert (Status 400 Transport, nicht 422 public-or-allowed)
Git Smart HTTP / HTTP-Body von diesem Host in Test-Fehler lesengitRepository.Test interpoliert TransportfehlerReconAus Pin abgeleitet. Lab nutzte eine 200-Git-Advertisment-Antwort
Nach der Zulassung auf RFC1918 / CGNAT umbindenTOCTOU: DNS validieren, dann nanogit dialenReconLab-belegt für RFC1918-Sidecar 172.30.60.3
Viewer-Lesezugriff auf gespeicherte spec.*.url inklusive Userinforepositories:readReconAus Pin abgeleitet. Nicht dieses Lab

Geschlossen bei diesem Rest (Lab-belegt): literales Loopback 127.0.0.1 422; RFC1918-Literal 10.0.0.1 422; IMDS 169.254.169.254 422. Geschlossen: Editor kann keine Repos erstellen. Kein RCE. Kein Grafana-Admin erforderlich. Grafana G2 überspringen (IAM SSOSetting k8s authorizer).

Wie ich es gefunden habe

Die Zulassung in apps/provisioning/pkg/repository/validator.go ruft URLValidator.ValidateURL auf. isBlockedIP besteht aus vier Prädikaten. Unspecified ist nur 0.0.0.0 / ::. Der Rest von 0.0.0.0/8 und CGNAT passieren. Der Clone verwendet später nanogit.NewHTTPClient(gitConfig.URL) und löst erneut auf.

Bereits dokumentierte Irrwege: Org-Admin-DS-URLs als diesen Rest zu behandeln (jene sind beabsichtigt; dies ist die Umgehung des Git-Sync-Validators); zu erwarten, dass IMDS 169.254 passiert (bei der Zulassung blockiert); Editor-Erstellung (verweigert); eine Reverse Shell. Theater.

Lab

python3 grafana-gitsync-dns-rebind-Abraxas-Labs.py

oder:

cd lab
./run.sh

Loopback: Grafana 127.0.0.1:19360, DNS-Kontrolle 127.0.0.1:19361, Rebind-Oracle 127.0.0.1:19362. Image grafana/grafana:13.2.3.

SUCCESS GRAFANA-GITSYNC-DNS-REBIND how=live actor=org-admin path=rebind dns_lookups=4 negatives=3 GRAFANA-GITSYNC-DNS-REBIND-WITNESS

Der Fix

Die aufgelöste Adresse über Clone/Test hinweg pinnen oder bei jedem Dial erneut validieren. 0.0.0.0/8 und CGNAT als blockiert behandeln. DNS bei allowlisteten Hosts nicht überspringen, ohne zu pinnen.

Referenzen

  • github.com/grafana/grafana Tag v13.2.3
  • url_validator.go · validator.go
  • CWE-918 · CWE-367

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen