Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
vfs-quote-breakout — VFS para Git ab95cf51 - Alta - Remoto - RCE - core.virtualfilesystem envoltura de comillas simples | Kitploit
Herramientas/GitHubGitHub/abraxas/vfs-quote-breakout
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlPapers e InvestigaciónDesarrollo de Payloads
GitHubabraxas/vfs-quote-breakout

vfs-quote-breakout

VFS para Git ab95cf51 - Alta - Remoto - RCE - core.virtualfilesystem envoltura de comillas simples

Ver Repositorio
8hace 4 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Abraxas Labs - vfs-quote-breakout

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

vfs-quote-breakout

Clase: RCE Alcance: Remoto

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

CloneVerb.GetCloneRoot toma el último segmento de la ruta de la URL como carpeta de enlistamiento predeterminada y no elimina una comilla. RequiredGitConfig luego escribe core.virtualfilesystem como una ruta de hook ingenua entre comillas simples. microsoft/git ejecuta ese valor con use_shell=1. El comentario del producto incluso menciona bash.

Una URL de clonación cuyo último segmento es pwn';witness;' se convierte en 'C:/temp/pwn';witness;'/src/.git/hooks/GVFS.VirtualFileSystemHook.exe'. bash ve tres comandos. El del medio se ejecuta como el usuario que clonó.

IDaún sin CVE
ClaseRCE (envoltura entre comillas simples de core.virtualfilesystem)
AlcanceRemoto (UI:R clonación de una URL del atacante, o git worktree add local bajo un directorio manipulado)
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
ProductoVFS for Git (necesita microsoft/git)
Afectadomaster ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (tag v2.0.26259.1). Solo Windows.
AuthLa víctima clona una URL del atacante (o git worktree add bajo un directorio manipulado)
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1. how=gadget (sin VM de Windows / ProjFS en vivo).

Qué puede hacer un atacante

Ejecutar código en el host como el usuario que clonó o ejecutó git. No SYSTEM. No es RCE no autenticado que se salte "la víctima clona esta URL".

PrivilegioMétodo / sinkQué otorgaReconocimiento / integridad / disponibilidadProbado en laboratorio o inferido
Elegir el nombre de la carpeta de enlistamientoÚltimo segmento de ruta de gvfs clone <url> sin dest (CloneVerb.GetCloneRoot)El nombre del directorio lo elige el atacante. Windows permite ' y ;Integridad de la ruta destProbado en laboratorio sobre el helper dest copiado. La URL .../pwn';witness;' se convierte en C:\temp\pwn';witness;'
Escapar de core.virtualfilesystemRequiredGitConfig envuelve "'" + ConvertPathToGitFormat(hook) + "'"El valor de configuración son tres tokens de shell, no una rutaIntegridad de la configuración de gitProbado en laboratorio. La envoltura es 'C:/temp/pwn';witness;'/src/.git/hooks/GVFS.VirtualFileSystemHook.exe'
Ejecutar un comando de shell adicional como el clonadormicrosoft/git virtualfilesystem.c use_shell=1 (bash -c del valor de configuración)Comando arbitrario en el host como el UID del clonadorIntegridad / disponibilidad de la sesión del clonadorProbado en laboratorio sobre el gadget. witness escribió VFS-VFS-QUOTE-WITNESS. El primer y tercer token son rutas inexistentes (rc 127)
La misma envoltura en worktreeProgram.Worktree.cs -c core.virtualfilesystem="'<path>'"El mismo escape sin una URL de clonaciónIntegridadInferido del código fijado. No ejecutado
Repetir en un git status / mount posteriorInProcessMount.TrySetRequiredGitConfigSettings vuelve a aplicar la envolturaUn git posterior también ejecuta el valor hostil mediante shellIntegridadInferido. No ejecutado

Cerrado en este remanente: ProjFS en vivo / Microsoft git / gvfs clone (este host es macOS; how=gadget). SYSTEM. RCE no autenticado que se salte "la víctima clona esta URL". Un dest cuyo nombre no tiene ', y la misma ruta hostil envuelta con '\'', no ejecutan witness.

Otros remanentes del mismo pin: vfs-mount-dehydrate, vfs-clone-acl, vfs-service-sid, vfs-hook-impersonate, vfs-install-cwd.

Cómo lo encontré

Fijé VFS for Git master ab95cf51 después del merge del 2026-09-28. Microsoft recomienda Scalar para nuevas implementaciones. El árbol sigue etiquetado como v2.0.26259.1. La lista de omisiones es CVE-2021-47874 (binPath entre comillas en este pin). Diez búsquedas. ProjFS hydration, parsers GPRE, URLs de caché, FastFetch y gvfs upgrade volvieron vacíos en este listón.

Luego me detuve en RequiredGitConfig. El comentario documenta bash. La envoltura no escapa '. CloneVerb usa el último segmento de la URL como dest. Ese es el remanente.

Malos caminos ya registrados: tratar un dest sin comilla como el bug (no lo es); afirmar SYSTEM; una reverse shell. Teatro. Faltaba Windows nativo, así que el laboratorio es un gadget de esa envoltura más bash -c.

Laboratorio

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

o

cd lab
./run.sh

Gadget HTTP en 127.0.0.1:19630. Copia los helpers de envoltura y dest, luego /bin/bash -c con PATH limitado a un helper witness que escribe el oráculo. No había VM de Windows nativa disponible. La última línea usa how=gadget.

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

La solución

Escapar ' como '\'' antes de envolver, o dejar de usar use_shell y pasar el hook como argv[0]. Rechazar rutas de clonación y worktree que contengan '.

Referencias

  • github.com/microsoft/VFSForGit master ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (tag v2.0.26259.1)
  • CloneVerb.cs dest predeterminado
  • RequiredGitConfig.cs envoltura que no escapa '
  • microsoft/git virtualfilesystem.c use_shell=1
  • Cercano parcheado (no esta envoltura): CVE-2021-47874 ImagePath sin comillas
  • CWE-78 · CWE-116

Licencia

GNU Affero GPL v3.0. Ver LICENSE. Solo laboratorio en loopback. Sin garantía.

Descargar herramienta