Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
vfs-quote-breakout — VFS para Git ab95cf51 - Alta - Remoto - RCE - core.virtualfilesystem envolto em aspas simples | Kitploit
Ferramentas/GitHubGitHub/abraxas/vfs-quote-breakout
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoComando e ControlePapers e PesquisaDesenvolvimento de Payloads
GitHubabraxas/vfs-quote-breakout

vfs-quote-breakout

VFS para Git ab95cf51 - Alta - Remoto - RCE - core.virtualfilesystem envolto em aspas simples

Ver Repositório
8há 4 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Abraxas Labs - vfs-quote-breakout

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

vfs-quote-breakout

Classe: RCE Alcance: Remoto

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

CloneVerb.GetCloneRoot usa o último segmento do caminho da URL como pasta de enlistment padrão e não remove uma aspa. RequiredGitConfig então grava core.virtualfilesystem como um caminho de hook ingênuo entre aspas simples. microsoft/git executa esse valor com use_shell=1. O comentário do produto até cita bash.

Uma URL de clone cujo último segmento é pwn';witness;' se torna 'C:/temp/pwn';witness;'/src/.git/hooks/GVFS.VirtualFileSystemHook.exe'. O bash vê três comandos. O do meio executa como o usuário que clonou.

IDsem CVE ainda
ClasseRCE (envoltório de aspas simples de core.virtualfilesystem)
AlcanceRemoto (UI:R clone de uma URL do atacante, ou git worktree add local sob um diretório forjado)
CWECWE-78, CWE-116
CVSSAlto: 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
ProdutoVFS for Git (precisa do microsoft/git)
Afetadomaster ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (tag v2.0.26259.1). Somente Windows.
AutenticaçãoVítima clona uma URL do atacante (ou git worktree add sob um diretório forjado)
LicençaGNU Affero GPL v3.0
LabSomente 127.0.0.1. how=gadget (sem VM Windows / ProjFS ao vivo).

O que um atacante pode fazer

Executar código no host como o usuário que clonou ou executou o git. Não SYSTEM. Não RCE não autenticado que ignora "a vítima clona esta URL".

PrivilégioMétodo / sinkO que concedeRecon / integridade / disponibilidadeComprovado em lab ou inferido
Escolher o nome da pasta de enlistmentÚltimo segmento do caminho de gvfs clone <url> sem dest (CloneVerb.GetCloneRoot)O nome do diretório é escolhido pelo atacante. Windows permite ' e ;Integridade do caminho de destComprovado em lab no helper de dest copiado. URL .../pwn';witness;' se torna C:\temp\pwn';witness;'
Sair de core.virtualfilesystemRequiredGitConfig envolve "'" + ConvertPathToGitFormat(hook) + "'"O valor de config são três tokens de shell, não um caminhoIntegridade da config do gitComprovado em lab. O envoltório é 'C:/temp/pwn';witness;'/src/.git/hooks/GVFS.VirtualFileSystemHook.exe'
Executar um comando de shell extra como o clonadormicrosoft/git virtualfilesystem.c use_shell=1 (bash -c do valor de config)Comando arbitrário no host como o UID do clonadorIntegridade / disponibilidade da sessão do clonadorComprovado em lab no gadget. witness gravou VFS-VFS-QUOTE-WITNESS. O primeiro e o terceiro tokens são caminhos inexistentes (rc 127)
Mesmo envoltório em worktreeProgram.Worktree.cs -c core.virtualfilesystem="'<path>'"Mesmo breakout sem uma URL de cloneIntegridadeInferido do código fixado. Não executado
Repetir em git status / mount posterioresInProcessMount.TrySetRequiredGitConfigSettings reaplica o envoltórioO git posterior também executa o valor hostil via shellIntegridadeInferido. Não executado

Fechado neste resíduo: ProjFS ao vivo / Microsoft git / gvfs clone (este host é macOS; how=gadget). SYSTEM. RCE não autenticado que ignora "a vítima clona esta URL". Um dest cujo nome não tem ', e o mesmo caminho hostil envolto com '\'', não executam witness.

Mesmos resíduos do pin: vfs-mount-dehydrate, vfs-clone-acl, vfs-service-sid, vfs-hook-impersonate, vfs-install-cwd.

Como eu encontrei

Fixe o VFS for Git master ab95cf51 após o merge de 2026-09-28. A Microsoft recomenda o Scalar para novas implantações. A árvore ainda está marcada como v2.0.26259.1. A lista de exclusão é CVE-2021-47874 (binPath entre aspas neste pin). Dez caçadas. Hidratação do ProjFS, parsers GPRE, URLs de cache, FastFetch e gvfs upgrade voltaram vazios neste nível.

Então eu parei em RequiredGitConfig. O comentário documenta bash. O envoltório não escapa '. CloneVerb usa o último segmento da URL como dest. Esse é o resíduo.

Caminhos errados já registrados: tratar um dest sem aspas como o bug (não é); alegar SYSTEM; um reverse shell. Teatro. O Windows nativo estava faltando, então o lab é um gadget desse envoltório mais bash -c.

Lab

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

ou

cd lab
./run.sh

Gadget HTTP em 127.0.0.1:19630. Copia os helpers de envoltório e dest, depois /bin/bash -c com PATH limitado a um helper witness que grava o oráculo. VM Windows nativa não estava disponível. A última linha usa how=gadget.

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

A correção

Escape ' como '\'' antes de envolver, ou pare de usar use_shell e passe o hook como argv[0]. Rejeite caminhos de clone e worktree que contenham '.

Referências

  • github.com/microsoft/VFSForGit master ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (tag v2.0.26259.1)
  • CloneVerb.cs dest padrão
  • RequiredGitConfig.cs envoltório que não escapa '
  • microsoft/git virtualfilesystem.c use_shell=1
  • Próximo corrigido (não este envoltório): CVE-2021-47874 ImagePath sem aspas
  • CWE-78 · CWE-116

Licença

GNU Affero GPL v3.0. Veja LICENSE. Somente lab em loopback. Sem garantia.

Baixar ferramenta