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
vfs-quote-breakout — VFS für Git ab95cf51 - Hoch - Remote - RCE - core.virtualfilesystem einfache Anführungszeichen umschließen | Kitploit
Tools/GitHubGitHub/abraxas/vfs-quote-breakout
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsCommand and ControlPapers & ForschungPayload-Entwicklung
GitHubabraxas/vfs-quote-breakout

vfs-quote-breakout

VFS für Git ab95cf51 - Hoch - Remote - RCE - core.virtualfilesystem einfache Anführungszeichen umschließen

Repository anzeigen
8vor 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 - vfs-quote-breakout

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vfs-quote-breakout

vfs-quote-breakout

Klasse: RCE Reichweite: Remote

VFS for Git master ab95cf51 (Tag v2.0.26259.1) - Microsoft

CloneVerb.GetCloneRoot verwendet das letzte URL-Pfadsegment als Standard-Enlistment-Ordner und entfernt kein Anführungszeichen. RequiredGitConfig schreibt dann core.virtualfilesystem als naiven, einfach-quotierten Hook-Pfad. microsoft/git führt diesen Wert mit use_shell=1 aus. Der Produktkommentar nennt sogar bash.

Eine Clone-URL, deren letztes Segment pwn';witness;' lautet, wird zu 'C:/temp/pwn';witness;'/src/.git/hooks/GVFS.VirtualFileSystemHook.exe'. bash sieht drei Befehle. Der mittlere läuft als der Benutzer, der geklont hat.

IDnoch keine CVE
KlasseRCE (Single-Quote-Umhüllung von core.virtualfilesystem)
ReichweiteRemote (UI:R Clone einer Angreifer-URL oder lokales git worktree add unter einem präparierten Verzeichnis)
CWECWE-78, CWE-116
CVSSHigh: 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
ProduktVFS for Git (benötigt microsoft/git)
Betroffenmaster ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (Tag v2.0.26259.1). Nur Windows.
AuthOpfer klont eine Angreifer-URL (oder git worktree add unter einem präparierten Verzeichnis)
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1. how=gadget (keine Windows-VM / kein Live-ProjFS).

Was ein Angreifer tun kann

Host-Code als der Benutzer, der geklont oder git ausgeführt hat. Nicht SYSTEM. Kein unauthentifizierter RCE, der „Opfer klont diese URL" überspringt.

PrivilegMethode / SinkWas es gewährtRecon / Integrität / VerfügbarkeitLab-bewiesen oder abgeleitet
Den Namen des Enlistment-Ordners wählenLetztes Pfadsegment von gvfs clone <url> ohne Ziel (CloneVerb.GetCloneRoot)Verzeichnisname ist vom Angreifer gewählt. Windows erlaubt ' und ;Integrität des ZielpfadsLab-bewiesen am kopierten Ziel-Helper. URL .../pwn';witness;' wird zu C:\temp\pwn';witness;'
Aus core.virtualfilesystem ausbrechenRequiredGitConfig umhüllt "'" + ConvertPathToGitFormat(hook) + "'"Konfigurationswert sind drei Shell-Token, kein einzelner PfadIntegrität der git-KonfigurationLab-bewiesen. Umhüllung ist 'C:/temp/pwn';witness;'/src/.git/hooks/GVFS.VirtualFileSystemHook.exe'
Einen zusätzlichen Shell-Befehl als der Klonende ausführenmicrosoft/git virtualfilesystem.c use_shell=1 (bash -c des Konfigurationswerts)Beliebiger Host-Befehl als die UID des KlonendenIntegrität / Verfügbarkeit der Klon-SitzungLab-bewiesen am Gadget. witness schrieb VFS-VFS-QUOTE-WITNESS. Erstes und drittes Token sind fehlende Pfade (rc 127)
Dieselbe Umhüllung bei worktreeProgram.Worktree.cs -c core.virtualfilesystem="'<path>'"Derselbe Ausbruch ohne Clone-URLIntegritätAbgeleitet aus dem Pin-Quellcode. Nicht ausgeführt
Wiederholung bei späterem git status / mountInProcessMount.TrySetRequiredGitConfigSettings wendet die Umhüllung erneut anSpäteres git führt ebenfalls den feindlichen Wert per Shell ausIntegritätAbgeleitet. Nicht ausgeführt

Geschlossen bei diesem Überbleibsel: Live-ProjFS / Microsoft git / gvfs clone (dieser Host ist macOS; how=gadget). SYSTEM. Unauthentifizierter RCE, der „Opfer klont diese URL" überspringt. Ein Ziel, dessen Name kein ' enthält, und derselbe feindliche Pfad, umhüllt mit '\'', führen witness nicht aus.

Gleiche Pin-Überbleibsel: vfs-mount-dehydrate, vfs-clone-acl, vfs-service-sid, vfs-hook-impersonate, vfs-install-cwd.

Wie ich es gefunden habe

Ich habe VFS for Git master ab95cf51 nach dem Merge vom 2026-09-28 gepinnt. Microsoft empfiehlt Scalar für neue Deployments. Der Tree ist weiterhin als v2.0.26259.1 getaggt. Die Skip-Liste ist CVE-2021-47874 (quotierter binPath bei diesem Pin). Zehn Jagden. ProjFS-Hydration, GPRE-Parser, Cache-URLs, FastFetch und gvfs upgrade kamen in dieser Messlatte leer zurück.

Dann blieb ich an RequiredGitConfig hängen. Der Kommentar dokumentiert bash. Die Umhüllung escaped ' nicht. CloneVerb verwendet das letzte URL-Segment als Ziel. Das ist das Überbleibsel.

Bereits festgehaltene Irrwege: ein Ziel ohne Anführungszeichen als den Bug zu behandeln (ist er nicht); SYSTEM zu behaupten; eine Reverse Shell. Theater. Native Windows fehlte, also ist das Lab ein Gadget aus dieser Umhüllung plus bash -c.

Lab

python3 vfs-quote-breakout-Abraxas-Labs.py

oder

cd lab
./run.sh

Gadget-HTTP auf 127.0.0.1:19630. Kopiert die Umhüllungs- und Ziel-Helper, dann /bin/bash -c mit auf einen witness-Helper beschränktem PATH, der das Orakel schreibt. Native Windows-VM war nicht verfügbar. Letzte Zeile verwendet how=gadget.

SUCCESS vfs-quote-breakout how=gadget who=cloner naive-breakout=yes escaped-hold=yes VFS-VFS-QUOTE-WITNESS

Der Fix

' als '\'' escapen, bevor umhüllt wird, oder use_shell nicht mehr verwenden und den Hook als argv[0] übergeben. Clone- und Worktree-Pfade ablehnen, die ' enthalten.

Referenzen

  • github.com/microsoft/VFSForGit master ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (Tag v2.0.26259.1)
  • CloneVerb.cs Standardziel
  • RequiredGitConfig.cs Umhüllung, die ' nicht escaped
  • microsoft/git virtualfilesystem.c use_shell=1
  • In der Nähe gepatcht (nicht diese Umhüllung): CVE-2021-47874 nicht quotierter ImagePath
  • CWE-78 · CWE-116

Lizenz

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

Tool herunterladen