Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-7867-disk2root — Exploit armado de escalada de privilegios local para CVE-2026-7867 en udisks2. Demuestra la suplantación de montaje como usuario para eludir PolicyKit y obtener una shell de root mediante inyección de carga útil SUID. | Kitploit
Herramientas/GitHubGitHub/azqzazq1/cve-2026-7867-disk2root
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPost-ExplotaciónPruebas de PenetraciónAprendizaje y EducaciónRed TeamingExplotación de BinariosLabs y Práctica

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
GitHubazqzazq1/cve-2026-7867-disk2root

CVE-2026-7867-disk2root

Exploit armado de escalada de privilegios local para CVE-2026-7867 en udisks2. Demuestra la suplantación de montaje como usuario para eludir PolicyKit y obtener una shell de root mediante inyección de carga útil SUID.

Ver Repositorio
1hace 2 mesesAún no revisado





Filesystem.Mount → Suplantación de as-user → Omisión de Autorización → Montaje en contexto root → LPE


Resumen

CVE-2026-7867 es una vulnerabilidad de escalación de privilegios local en udisks2 que involucra el método D-Bus Filesystem.Mount, la opción as-user, los flujos de montaje gestionados por fstab y un manejo de autorización defectuoso.

Este repositorio privado contiene las notas técnicas de investigación y los scripts PoC utilizados para validar el problema en un entorno de laboratorio controlado.

La vulnerabilidad fue descubierta y reportada por:

Azizcan Daştanazqzazq1
Özlem Ozanoz7oz7

Se le asignó el siguiente identificador:

root@kitploit:~
CVE-2026-7867

Resumen Ejecutivo

La vulnerabilidad es causada por una relación de confianza defectuosa entre el UID real del llamante de D-Bus y el UID calculado/efectivo producido por la opción de montaje as-user.

En flujos vulnerables, un usuario local sin privilegios puede influir en la ruta de ejecución del montaje de manera que un montaje de sistema de archivos se realice en un contexto privilegiado/root sin el comportamiento de autorización esperado de PolicyKit.

El error central no es simplemente "opciones de montaje controladas por el usuario".

El verdadero problema es:

udisks2 no logra distinguir de manera consistente la identidad del llamante original de la identidad calculada de as-user durante la autorización y ejecución del montaje en fstab.


Vulnerabilidad de un Vistazo


Área Afectada

La lógica vulnerable está asociada con la ruta de manejo de montaje en fstab dentro de udisks2, especialmente cuando la solicitud de montaje involucra:

root@kitploit:~
Filesystem.Mount
as-user
x-udisks-auth
user
users

Las áreas sensibles a la seguridad relevantes son:

root@kitploit:~
identidad del llamante de D-Bus
        ↓
manejo de la opción as-user
        ↓
lógica de autorización de fstab
        ↓
flujo de decisión de PolicyKit
        ↓
ejecución de montaje en contexto root

Flujo de Ataque

root@kitploit:~
┌─────────────────────────────┐
│ Usuario Local sin Privilegios │
└──────────────┬──────────────┘
               │
               │ Filesystem.Mount
               │ con influencia de as-user
               ▼
┌─────────────────────────────┐
│ udisks2 / udisksd           │
│ demonio del sistema privilegiado│
└──────────────┬──────────────┘
               │
               │ la lógica de fstab evalúa
               │ opciones de usuario/auth
               ▼
┌─────────────────────────────┐
│ Brecha de Autorización      │
│ mount_other_user no         │
│ se aplica en ruta omitida   │
└──────────────┬──────────────┘
               │
               │ se alcanza la rama de contexto root
               ▼
┌─────────────────────────────┐
│ Sistema de Archivos Montado  │
│ sin el flujo de autorización  │
│ esperado                     │
└──────────────┬──────────────┘
               │
               │ el impacto depende de los flags de montaje
               ▼
┌─────────────────────────────┐
│ Escalación de Privilegios   │
│ Local                       │
│ validación en laboratorio   │
│ controlado                  │
└─────────────────────────────┘

Causa Raíz

El comportamiento vulnerable proviene de un error de confusión de identidad.

El sistema tiene múltiples conceptos de identidad:

root@kitploit:~
UID real del llamante de D-Bus
UID calculado de as-user
UID efectivo de montaje
contexto de privilegio del demonio udisksd

El flujo vulnerable no logra aplicar estas identidades de manera consistente.

En particular:

  • mount_other_user puede volverse verdadero porque se usa as-user
  • opciones de fstab como x-udisks-auth, user o users pueden afectar la ruta de autorización
  • el bloque de autorización puede omitirse
  • la verificación de mount_other_user no se aplica de manera confiable fuera de ese bloque
  • la ruta de montaje puede alcanzar una rama destinada a la ejecución genuina de root/admin
  • el montaje es realizado por el contexto del demonio privilegiado

El resultado es un bypass del límite de privilegios local.


El Problema de x-udisks-auth

Se supone que la opción x-udisks-auth fuerza un flujo de autorización administrativa de PolicyKit.

Comportamiento esperado:

root@kitploit:~
solicitud de montaje
    ↓
intento de montaje como llamante
    ↓
fallo de permiso/auth
    ↓
verificación de PolicyKit filesystem-fstab
    ↓
aprobación de admin
    ↓
montaje como acción privilegiada autorizada

Comportamiento vulnerable:

root@kitploit:~
solicitud de montaje con influencia de as-user
    ↓
la identidad calculada afecta la ejecución
    ↓
el montaje tiene éxito demasiado pronto
    ↓
la ruta de autenticación de PolicyKit no se alcanza como se esperaba
    ↓
se logra un estado de montaje privilegiado

Esto hace que el modelo de seguridad alrededor de x-udisks-auth no sea confiable en la ruta vulnerable.


Violación del Modelo de Seguridad

Modelo esperado:

root@kitploit:~
Usuario sin privilegios
    ↓
solicitud de montaje D-Bus
    ↓
autorización PolicyKit / fstab
    ↓
comportamiento de montaje restringido

Modelo roto:

root@kitploit:~
Usuario sin privilegios
    ↓
solicitud de montaje D-Bus con suplantación de as-user
    ↓
desajuste en la lógica de autorización
    ↓
ejecución de montaje en contexto root

El error es especialmente grave porque el servicio afectado se ejecuta con privilegios elevados.


Impacto

Una explotación exitosa puede permitir que un usuario local sin privilegios monte un sistema de archivos a través de udisks2 en una ruta de ejecución de contexto root sin la solicitud de autorización esperada.

Dependiendo del sistema de archivos y los flags de montaje, el impacto puede incluir:

  • escalación de privilegios local
  • montaje no autorizado de sistemas de archivos en contexto root
  • bypass de la autorización esperada de PolicyKit
  • montaje inseguro de dispositivos gestionados por fstab
  • escalación basada en setuid en configuraciones de laboratorio afectadas
  • ejecución no esperada de archivos desde sistemas de archivos controlados o preparados por el atacante

Condiciones de Explotación

Esta es una vulnerabilidad local.

Las condiciones relevantes incluyen:


Estructura del Repositorio

root@kitploit:~
.
├── README.md
├── disk2root.sh              ← exploit principal (LPE autocontenido)
└── poc/
    ├── setup_lpe_env.sh       ← configuración del entorno de laboratorio
    ├── f2_mount_as_user_bypass.sh
    ├── f2_check_nosuid.sh
    ├── f2_suid_test.sh
    ├── f2_final.sh
    └── cleanup_lpe_env.sh

Exploit — disk2root.sh

Exploit autocontenido y armado. Construye su propio payload SUID de root, crea una imagen de disco preparada, la monta mediante el bypass de polkit as-user=root y entrega una shell de root.

Inicio Rápido

Opción 1 — Ejecutar como root (funciona en todas partes, incluido SSH):

root@kitploit:~
./disk2root.sh

El script automáticamente:

  1. Compila un binario estático de shell SUID root
  2. Crea una imagen ext4 de 32MB en un dispositivo loop
  3. Inyecta el binario con uid=0 mode=4755 mediante debugfs
  4. Añade una entrada en fstab con x-udisks-auth
  5. Cambia a un usuario sin privilegios mediante su
  6. Llama a Filesystem.Mount con as-user=root (bypass de polkit)
  7. Ejecuta el binario SUID → shell de root
  8. Limpia todo al salir

Para especificar desde qué usuario escalar:

root@kitploit:~
./disk2root.sh testuser

Si no se especifica usuario, el script elige el primer usuario regular en el sistema o crea uno temporal.


Opción 2 — Ejecutar como usuario sin privilegios (escritorio / sesión activa):

root@kitploit:~
./disk2root.sh

En sistemas con una sesión activa de polkit (inicio de sesión en escritorio, GNOME/KDE), el script es completamente autocontenido — crea su propio dispositivo loop mediante udisksctl o D-Bus LoopSetup, monta con as-user=root y escala sin necesidad de configuración previa.


Opción 3 — Ejecutar como usuario sin privilegios (SSH, después de la configuración):

Si el entorno ya fue preparado (por ejemplo, ejecutando poc/setup_lpe_env.sh como root, o por una ejecución previa de ./disk2root.sh como root), cualquier usuario sin privilegios puede re-explotar:

root@kitploit:~
./disk2root.sh

El script detecta automáticamente las entradas vulnerables de fstab y las utiliza.


Limpieza

root@kitploit:~
./disk2root.sh --cleanup

Elimina todos los artefactos: entrada de fstab, dispositivo loop, punto de montaje, usuario temporal.


Cascada de Estrategias

Cuando se ejecuta como no privilegiado, el script prueba múltiples rutas en orden:

root@kitploit:~
[A] Autocontenido
    construir payload → crear imagen ext4 → debugfs inyectar binario SUID
    → loop-setup (python3 GIO / udisksctl) → montar as-user=root
    ✓ funciona en sesiones de escritorio

[B] Fallback de fstab
    escanear /etc/fstab en busca de entradas x-udisks-auth / user / users
    → montar as-user=root → encontrar binario SUID en el fs montado
    ✓ funciona en SSH cuando el entorno está preparado

Ejemplo de Salida

root@kitploit:~
╔═════════════════════════════════════════════════════╗
║  CVE-2026-7867 — disk2root                          ║
║  udisks2 as-user polkit bypass → shell root LPE     ║
╚═════════════════════════════════════════════════════════╝

[*] uid=1002 (testuser) — explotando...
    fstab: /dev/loop5 → /mnt/disk2root (x-udisks-auth)
    montado: /mnt/disk2root
    nosuid: no establecido
    suid: pwn (4755 root:root)

╔═════════════════════════════════════════════════════╗
║  ingresando a shell de root — escribe 'exit' para    ║
║  regresar                                            ║
╚═════════════════════════════════════════════════════════╝

[+] shell de root — uid=0 euid=0
root@target:/tmp#

Requisitos


Scripts PoC (poc/)

Scripts de validación individuales utilizados durante la investigación. Estos son los componentes básicos que llevaron a disk2root.sh.

Flujo de Laboratorio (usando scripts PoC individuales)

root@kitploit:~
1. Ejecutar poc/setup_lpe_env.sh como root
2. su - testuser
3. Ejecutar poc/f2_mount_as_user_bypass.sh
4. Ejecutar poc/f2_final.sh para validación completa
5. Ejecutar poc/cleanup_lpe_env.sh como root

O simplemente usar disk2root.sh que combina todo lo anterior.


Primitiva Técnica

La primitiva demostrada por esta investigación es:

root@kitploit:~
suplantación de la opción as-user dentro de la orquestación de montaje privilegiado

La transición crítica es:

root@kitploit:~
llamante de D-Bus sin privilegios
        ↓
identidad de montaje suplantada/calculada
        ↓
confusión en la ruta de autorización
        ↓
ejecución de montaje en contexto root

Por eso el problema califica como una vulnerabilidad de escalación de privilegios local.


Por Qué Este Error Importa

udisks2 es comúnmente confiado como un demonio privilegiado de gestión de almacenamiento.

Un error en esta capa es de alto impacto porque se sitúa entre:

root@kitploit:~
usuarios de escritorio/sesión
llamadas a métodos D-Bus
autorización de PolicyKit
operaciones de montaje de sistemas de archivos
privilegios del demonio root

Una falla en el manejo de identidad aquí puede afectar directamente los límites de privilegios locales.


Ideas para Detección

Los defensores pueden monitorear actividad sospechosa de montaje de udisks2 que involucre as-user.

Fuentes de telemetría útiles:

root@kitploit:~
registros de udisksd
llamadas a métodos D-Bus
registros de PolicyKit
cambios en la tabla de montaje
/proc/mounts
/etc/fstab
journalctl

Comandos útiles:

root@kitploit:~
findmnt
mount
cat /proc/mounts
journalctl -u udisks2
journalctl | grep -i udisks
journalctl | grep -i polkit

Patrones sospechosos:

root@kitploit:~
usuario no root activando Filesystem.Mount
uso de as-user=root
montaje inesperado sin solicitud de PolicyKit
montajes sin nosuid/noexec/nodev
ejecución de setuid desde sistemas de archivos recién montados
montajes inesperados de dispositivos loop

Mitigación

Actualizar udisks2

Aplicar la corrección proporcionada por el vendedor una vez disponible.

Lanzamiento de corrección planificado:

root@kitploit:~
udisks 2.11.2

Revisar Entradas de fstab

Auditar entradas que utilicen:

root@kitploit:~
x-udisks-auth
user
users

Especialmente revisar sistemas de archivos que puedan contener contenido ejecutable o setuid.


Restringir Acceso Local a la Shell

Dado que es una vulnerabilidad local, reducir el acceso local no confiable disminuye la exposición.


Monitorear Actividad de Montaje

Monitorear operaciones de montaje inesperadas a través de:

root@kitploit:~
udisksd

especialmente cuando son activadas por usuarios no root.


Aplicar Flags de Montaje Más Seguros

Cuando sea aplicable, usar:

root@kitploit:~
nosuid
noexec
nodev

Estos flags pueden reducir el impacto posterior al montaje.


Reforzar Reglas de PolicyKit

Revisar las reglas de PolicyKit relacionadas con las acciones de montaje de udisks.

Asegurar que los usuarios sin privilegios no puedan activar rutas de montaje sensibles sin autorización explícita.


Dirección de la Corrección

Una corrección robusta debería asegurar que:

  • el UID del llamante original de D-Bus se preserve
  • el UID calculado de as-user no reemplace la identidad del llamante para la autorización
  • mount_other_user siempre active las comprobaciones adecuadas de PolicyKit
  • la ejecución de montaje en contexto root se limite a flujos genuinos de root/admin autorizados
  • x-udisks-auth aplique consistentemente la autenticación
  • se auditen rutas de código relacionadas, como el manejo de sistemas de archivos cifrados

Cronología de Divulgación


Créditos


Plan de Publicación Pública

Después de que se levante el embargo, este repositorio puede convertirse en un repositorio público de investigación con:

root@kitploit:~
docs/
├── technical-analysis.md
├── root-cause.md
├── lab-setup.md
├── exploit-flow.md
├── detection.md
└── mitigation.md

Adiciones públicas recomendadas:

  • enlace oficial de CVE
  • enlace de aviso de Red Hat
  • enlace del parche upstream
  • matriz de versiones afectadas/corregidas
  • guía de reproducción segura
  • notas de uso controlado del PoC
  • guía de detección y refuerzo

Descargo de Responsabilidad

Este repositorio es solo para investigación de seguridad autorizada, coordinación con el vendedor y validación defensiva.

Los scripts PoC están destinados a entornos de prueba aislados.

No ejecute estos scripts en sistemas que no posea o para los que no tenga permiso explícito de prueba.

Los autores no son responsables del mal uso de esta investigación.



CVE-2026-7867
udisks2 Investigación de Escalación de Privilegios Local



Descargar herramienta
CampoValor
CVECVE-2026-7867
Productoudisks2
ComponenteFilesystem.Mount
Tipo de AtaqueEscalación de Privilegios Local
PrimitivaSuplantación de as-user
Límite de SeguridadIdentidad del llamante de D-Bus → ejecución de montaje privilegiado
Capa de AutorizaciónPolicyKit / autorización de montaje en fstab
VendedorRed Hat / upstream de udisks
EstadoParche en progreso / divulgación coordinada
Lanzamiento de Corrección Planificadoudisks 2.11.2
CondiciónRequerido
Acceso de usuario localSí
Versión vulnerable de udisks2Sí
Funcionalidad as-user presenteSí
Objetivo de montaje gestionado por fstab adecuadoSí
Ruta de autorización vulnerableSí
Acceso remotoNo
HerramientaPropósitoRequerido
busctlLlamada de montaje D-BusSí
gccCompilar payload SUIDSí (alternativa: copia de bash)
mke2fsCrear imagen ext4Sí (modo autocontenido)
debugfsInyectar binario con uid=0Sí (modo autocontenido)
python3-giLoopSetup D-Bus con paso de fdOpcional (modo escritorio)
udisksctlConfiguración de dispositivo loopOpcional (modo escritorio)
ScriptPropósito
setup_lpe_env.shPreparar entorno de laboratorio (dispositivo loop, fstab, usuario de prueba)
f2_mount_as_user_bypass.shValidar bypass de Filesystem.Mount con as-user=root
f2_check_nosuid.shVerificar los flags nosuid/noexec/nodev en el montaje con bypass
f2_suid_test.shProbar ejecución de binario SUID en el sistema de archivos montado
f2_final.shPoC integral: configuración → bypass → verificar euid=0
cleanup_lpe_env.shRestaurar entorno de prueba
FechaEvento
2026-04-21Informe enviado al equipo de seguridad de productos de Red Hat
2026-04-21Red Hat confirmó la recepción
2026-04-28El vendedor confirmó la lógica defectuosa
2026-04-28El vendedor solicitó los scripts PoC
2026-04-30El vendedor solicitó la asignación de CVE
2026-04-30Scripts PoC enviados al vendedor
2026-05-03Parche inicial del vendedor compartido
2026-05-05Parche actualizado del vendedor compartido
2026-05-05CVE-2026-7867 reservado
2026-05-05Ticket marcado como resuelto
2026-05-07El vendedor indicó que la corrección está planificada para udisks 2.11.2
InvestigadorGitHubRol
Azizcan Daştanazqzazq1Descubrimiento, análisis, desarrollo de PoC, coordinación con el vendedor
Özlem Ozanoz7oz7Colaboración en investigación y crédito de divulgación