Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
vfs-quote-breakout — VFS for Git ab95cf51 - उच्च - रिमोट - RCE - core.virtualfilesystem single-quote wrap | Kitploit
उपकरण/GitHubGitHub/abraxas/vfs-quote-breakout
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलपेपर और शोधपेलोड डेवलपमेंट
GitHubabraxas/vfs-quote-breakout

vfs-quote-breakout

VFS for Git ab95cf51 - उच्च - रिमोट - RCE - core.virtualfilesystem single-quote wrap

रिपॉजिटरी देखें
84 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Abraxas Labs - vfs-quote-breakout

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

vfs-quote-breakout

Class: RCE Reach: Remote

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

CloneVerb.GetCloneRoot अंतिम URL पथ खंड को डिफ़ॉल्ट enlistment फ़ोल्डर के रूप में लेता है और quote को हटाता नहीं है। RequiredGitConfig फिर core.virtualfilesystem को naive single-quoted hook path के रूप में लिखता है। microsoft/git उस मान को use_shell=1 के साथ चलाता है। product comment तो bash का नाम भी लेता है।

एक clone URL जिसका अंतिम खंड pwn';witness;' है, 'C:/temp/pwn';witness;'/src/.git/hooks/GVFS.VirtualFileSystemHook.exe' बन जाता है। bash तीन commands देखता है। बीच वाला उस user के रूप में चलता है जिसने clone किया।

IDअभी कोई CVE नहीं
ClassRCE (core.virtualfilesystem का single-quote wrap)
ReachRemote (attacker URL का UI:R clone, या crafted dir के अंतर्गत local git worktree add)
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
ProductVFS for Git (microsoft/git चाहिए)
Affectedmaster ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (tag v2.0.26259.1)। केवल Windows।
AuthVictim attacker URL clone करता है (या crafted dir के अंतर्गत git worktree add)
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1। how=gadget (कोई Windows VM / live ProjFS नहीं)।

एक attacker क्या कर सकता है

उस user के रूप में host code जिसने clone किया या git चलाया। SYSTEM नहीं। Unauthenticated RCE नहीं जो "victim इस URL को clone करता है" को छोड़ दे।

PrivilegeMethod / sinkक्या देता हैRecon / integrity / availabilityLab-proven या inferred
Enlistment फ़ोल्डर नाम चुननाबिना dest के gvfs clone <url> का अंतिम पथ खंड (CloneVerb.GetCloneRoot)Directory नाम attacker-chosen है। Windows ' और ; की अनुमति देता हैdest path की integritycopied dest helper पर Lab-proven। URL .../pwn';witness;' बनता है C:\temp\pwn';witness;'
core.virtualfilesystem से बाहर निकलनाRequiredGitConfig wrap "'" + ConvertPathToGitFormat(hook) + "'"Config मान तीन shell tokens है, एक path नहींgit config की integrityLab-proven। Wrap है 'C:/temp/pwn';witness;'/src/.git/hooks/GVFS.VirtualFileSystemHook.exe'
cloner के रूप में अतिरिक्त shell command चलानाmicrosoft/git virtualfilesystem.c use_shell=1 (config मान का bash -c)cloner UID के रूप में arbitrary host commandcloner session की integrity / availabilitygadget पर Lab-proven। witness ने VFS-VFS-QUOTE-WITNESS लिखा। पहला और तीसरा token missing paths हैं (rc 127)
worktree पर वही wrapProgram.Worktree.cs -c core.virtualfilesystem="'<path>'"clone URL के बिना वही breakoutIntegritypin source से inferred। निष्पादित नहीं
बाद के git status / mount पर दोहरावInProcessMount.TrySetRequiredGitConfigSettings wrap को फिर से लागू करता हैबाद वाला git भी hostile मान को shell करता हैIntegrityInferred। निष्पादित नहीं

इस leftover पर बंद: live ProjFS / Microsoft git / gvfs clone (यह host macOS है; how=gadget)। SYSTEM। Unauthenticated RCE जो "victim इस URL को clone करता है" को छोड़ दे। ऐसा dest जिसके नाम में ' नहीं है, और वही hostile path '\'' के साथ wrapped, witness नहीं चलाते।

वही pin leftovers: vfs-mount-dehydrate, vfs-clone-acl, vfs-service-sid, vfs-hook-impersonate, vfs-install-cwd।

मैंने इसे कैसे खोजा

मैंने 2026-09-28 merge के बाद VFS for Git master ab95cf51 pin किया। Microsoft नए deployments के लिए Scalar की सिफ़ारिश करता है। Tree अभी भी v2.0.26259.1 tagged है। Skip list CVE-2021-47874 है (इस pin पर quoted binPath)। दस hunts। ProjFS hydration, GPRE parsers, cache URLs, FastFetch, और gvfs upgrade इस bar में खाली लौटे।

फिर मैं RequiredGitConfig पर बैठा। Comment bash को document करता है। Wrap ' को escape नहीं करता। CloneVerb अंतिम URL खंड को dest के रूप में उपयोग करता है। वही leftover है।

पहले से दर्ज wrong turns: बिना quote वाले dest को bug मानना (यह नहीं है); SYSTEM का दावा; एक reverse shell। Theatre। Native Windows अनुपलब्ध था, इसलिए lab उस wrap का gadget है plus bash -c।

Lab

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

या

cd lab
./run.sh

Gadget HTTP 127.0.0.1:19630 पर। wrap और dest helpers की प्रतिलिपि बनाता है, फिर /bin/bash -c जिसका PATH एक witness helper तक सीमित है जो oracle लिखता है। Native Windows VM उपलब्ध नहीं था। अंतिम पंक्ति how=gadget का उपयोग करती है।

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

समाधान

Wrap करने से पहले ' को '\'' के रूप में escape करें, या use_shell का उपयोग बंद करें और hook को argv[0] के रूप में पास करें। ऐसे clone और worktree paths को अस्वीकार करें जिनमें ' हो।

संदर्भ

  • github.com/microsoft/VFSForGit master ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (tag v2.0.26259.1)
  • CloneVerb.cs default dest
  • RequiredGitConfig.cs wrap जो ' को escape नहीं करता
  • microsoft/git virtualfilesystem.c use_shell=1
  • आस-पास patched (यह wrap नहीं): CVE-2021-47874 unquoted ImagePath
  • CWE-78 · CWE-116

License

GNU Affero GPL v3.0। देखें LICENSE। केवल Loopback lab। कोई warranty नहीं।

टूल डाउनलोड करें