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

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-7867-disk2root — Exploit de escalada de privilégios local armado para CVE-2026-7867 no udisks2, usando spoofing de montagem as-user para contornar o PolicyKit e obter um shell root. | Kitploit
Ferramentas/GitHubGitHub/azqzazq1/cve-2026-7867-disk2root
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoPós-ExploraçãoTestes de PenetraçãoAprendizado e EducaçãoRed TeamingExploração de BináriosLabs e Prática

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

CVE-2026-7867-disk2root

Exploit de escalada de privilégios local armado para CVE-2026-7867 no udisks2, usando spoofing de montagem as-user para contornar o PolicyKit e obter um shell root.

Ver Repositório
12há 3 mesesAinda não revisado





Filesystem.Mount → as-user Spoofing → Authorization Bypass → Root-context Mount → LPE


Visão Geral

CVE-2026-7867 é uma vulnerabilidade de escalada local de privilégios no udisks2 envolvendo o método D-Bus Filesystem.Mount, a opção as-user, fluxos de montagem gerenciados por fstab e manipulação de autorização defeituosa.

Este repositório privado contém as notas técnicas de pesquisa e scripts PoC usados para validar o problema em um ambiente de laboratório controlado.

A vulnerabilidade foi descoberta e reportada por:

Azizcan Daştanazqzazq1
Özlem Ozanoz7oz7

A emissão foi atribuída:

root@kitploit:~
CVE-2026-7867

Resumo Executivo

A vulnerabilidade é causada por uma relação de confiança defeituosa entre o UID real do chamador D-Bus e o UID calculado/efetivo produzido pela opção de montagem as-user.

Em fluxos vulneráveis, um utilizador local não privilegiado pode influenciar o caminho de execução da montagem de modo que uma montagem de sistema de ficheiros seja realizada num contexto privilegiado/root sem o comportamento esperado de autorização do PolicyKit.

O bug central não é simplesmente "opções de montagem controladas pelo utilizador".

O verdadeiro problema é:

O udisks2 falha em distinguir consistentemente a identidade do chamador original da identidade as-user calculada durante a autorização e execução da montagem fstab.


Vulnerabilidade em Resumo


Área Afetada

A lógica vulnerável está associada ao caminho de manipulação de montagem fstab dentro do udisks2, especialmente quando o pedido de montagem envolve:

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

As áreas relevantes de sensibilidade de segurança são:

root@kitploit:~
Identidade do chamador D-Bus
        ↓
Manipulação da opção as-user
        ↓
Lógica de autorização fstab
        ↓
Fluxo de decisão PolicyKit
        ↓
Execução de montagem em contexto root

Fluxo do Ataque

root@kitploit:~
┌─────────────────────────────┐
│ Utilizador local não privilegiado │
└──────────────┬──────────────┘
               │
               │ Filesystem.Mount
               │ com influência as-user
               ▼
┌─────────────────────────────┐
│ udisks2 / udisksd           │
│ daemon de sistema           │
│ privilegiado                │
└──────────────┬──────────────┘
               │
               │ A lógica fstab avalia
               │ opções de utilizador/autorização
               ▼
┌─────────────────────────────┐
│ Lacuna de Autorização       │
│ mount_other_user não        │
│ aplicado no caminho ignorado│
└──────────────┬──────────────┘
               │
               │ Ramo contexto-root alcançado
               ▼
┌─────────────────────────────┐
│ Sistema de Ficheiros Montado│
│ sem o fluxo de autorização  │
│ esperado                    │
└──────────────┬──────────────┘
               │
               │ Impacto depende dos flags de montagem
               ▼
┌─────────────────────────────┐
│ Escalada Local de Privilégios│
│ validação em laboratório    │
│ controlado                  │
└─────────────────────────────┘

Causa Raiz

O comportamento vulnerável provém de um bug de confusão de identidade.

O sistema tem múltiplos conceitos de identidade:

root@kitploit:~
UID real do chamador D-Bus
UID as-user calculado
UID efetivo da montagem
Contexto de privilégio do daemon udisksd

O fluxo vulnerável falha em aplicar essas identidades de forma consistente.

Em particular:

  • mount_other_user pode tornar-se verdadeiro porque as-user é usado
  • Opções fstab como x-udisks-auth, user, ou users podem afetar o caminho de autorização
  • O bloco de autorização pode ser ignorado
  • A verificação mount_other_user não é aplicada de forma fiável fora desse bloco
  • O caminho de montagem pode alcançar um ramo destinado a execução genuína de root/admin
  • A montagem é realizada pelo contexto do daemon privilegiado

O resultado é uma bypass do limite de privilégio local.


O Problema do x-udisks-auth

A opção x-udisks-auth supostamente força um fluxo de autorização PolicyKit administrativo.

Comportamento esperado:

root@kitploit:~
pedido de montagem
    ↓
tentar montar como chamador
    ↓
falha de permissão/autorização
    ↓
verificação PolicyKit filesystem-fstab
    ↓
aprovação administrativa
    ↓
montagem como ação privilegiada autorizada

Comportamento vulnerável:

root@kitploit:~
pedido de montagem com influência as-user
    ↓
identidade calculada afeta execução
    ↓
montagem é bem-sucedida demasiado cedo
    ↓
caminho de autorização PolicyKit não é alcançado como esperado
    ↓
estado de montagem privilegiada é alcançado

Isto torna o modelo de segurança em torno de x-udisks-auth não fiável no caminho vulnerável.


Violação do Modelo de Segurança

Modelo esperado:

root@kitploit:~
Utilizador não privilegiado
    ↓
Pedido de montagem D-Bus
    ↓
Autorização PolicyKit / fstab
    ↓
Comportamento restrito de montagem

Modelo quebrado:

root@kitploit:~
Utilizador não privilegiado
    ↓
Pedido de montagem D-Bus com spoofing as-user
    ↓
Incompatibilidade na lógica de autorização
    ↓
Execução de montagem em contexto root

O bug é especialmente grave porque o serviço afetado é executado com privilégios elevados.


Impacto

A exploração bem-sucedida pode permitir que um utilizador local não privilegiado monte um sistema de ficheiros através do udisks2 num caminho de execução em contexto root sem o prompt de autorização esperado.

Dependendo do sistema de ficheiros e dos flags de montagem, o impacto pode incluir:

  • Escalada local de privilégios
  • Montagem não autorizada de sistemas de ficheiros em contexto root
  • Bypass da autorização PolicyKit esperada
  • Montagem insegura de dispositivos geridos por fstab
  • Escalada baseada em setuid em configurações laboratoriais afetadas
  • Execução inesperada de ficheiros a partir de sistemas de ficheiros controlados ou preparados pelo atacante

Condições de Exploração

Esta é uma vulnerabilidade local.

Condições relevantes incluem:


Estrutura do Repositório

root@kitploit:~
.
├── README.md
├── disk2root.sh              ← exploit principal (LPE autocontido)
└── poc/
    ├── setup_lpe_env.sh       ← configuração do ambiente laboratorial
    ├── 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 autocontido e armadilhado. Constrói o seu próprio payload SUID root, cria uma imagem de disco preparada, monta-a através da bypass polkit as-user=root, e entra numa shell root.

Início Rápido

Opção 1 — Executar como root (funciona em todo o lado, incluindo SSH):

root@kitploit:~
./disk2root.sh

O script automaticamente:

  1. Compila um binário de shell SUID root estático
  2. Cria uma imagem ext4 de 32MB num dispositivo loop
  3. Injeta o binário com uid=0 mode=4755 via debugfs
  4. Adiciona uma entrada fstab com x-udisks-auth
  5. Muda para um utilizador não privilegiado via su
  6. Chama Filesystem.Mount com as-user=root (bypass polkit)
  7. Executa o binário SUID → shell root
  8. Limpa tudo ao sair

Para especificar de que utilizador escalar:

root@kitploit:~
./disk2root.sh testuser

Se nenhum utilizador for especificado, o script escolhe o primeiro utilizador regular no sistema ou cria um temporário.


Opção 2 — Executar como utilizador não privilegiado (ambiente gráfico / sessão ativa):

root@kitploit:~
./disk2root.sh

Em sistemas com sessão polkit ativa (login de ambiente gráfico, GNOME/KDE), o script é totalmente autocontido — cria o seu próprio dispositivo loop via udisksctl ou D-Bus LoopSetup, monta via as-user=root, e escala sem qualquer configuração prévia.


Opção 3 — Executar como utilizador não privilegiado (SSH, após configuração):

Se o ambiente já foi preparado (ex.: executando poc/setup_lpe_env.sh como root, ou por uma execução anterior de ./disk2root.sh como root), qualquer utilizador não privilegiado pode re-explorar:

root@kitploit:~
./disk2root.sh

O script deteta automaticamente entradas fstab vulneráveis e utiliza-as.


Limpeza

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

Remove todos os artefactos: entrada fstab, dispositivo loop, ponto de montagem, utilizador temporário.


Cascata de Estratégias

Quando executado como não privilegiado, o script tenta vários caminhos por ordem:

root@kitploit:~
[A] Autocontido
    construir payload → criar imagem ext4 → debugfs injetar binário SUID
    → loop-setup (python3 GIO / udisksctl) → montar as-user=root
    ✓ funciona em sessões gráficas

[B] Fallback fstab
    varrer /etc/fstab por entradas x-udisks-auth / user / users
    → montar as-user=root → encontrar binário SUID no fs montado
    ✓ funciona em SSH quando o ambiente está preparado

Exemplo de Saída

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

[*] uid=1002 (testuser) — a explorar...
    fstab: /dev/loop5 → /mnt/disk2root (x-udisks-auth)
    montado: /mnt/disk2root
    nosuid: não definido
    suid: pwn (4755 root:root)

╔═══════════════════════════════════════════════════════════╗
║  a entrar em shell root — digite 'exit' para regressar    ║
╚═══════════════════════════════════════════════════════════════╝

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

Requisitos


Scripts PoC (poc/)

Scripts de validação individuais usados durante a pesquisa. Estes são os blocos de construção que levaram ao disk2root.sh.

Fluxo Laboratorial (usando scripts PoC individuais)

root@kitploit:~
1. Executar poc/setup_lpe_env.sh como root
2. su - testuser
3. Executar poc/f2_mount_as_user_bypass.sh
4. Executar poc/f2_final.sh para validação completa
5. Executar poc/cleanup_lpe_env.sh como root

Ou simplesmente usar disk2root.sh que combina tudo acima.


Primitiva Técnica

A primitiva demonstrada por esta pesquisa é:

root@kitploit:~
Spoofing da opção as-user dentro da orquestração de montagem privilegiada

A transição crítica é:

root@kitploit:~
Chamador D-Bus não privilegiado
        ↓
Identidade de montagem falsificada/calculada
        ↓
Confusão no caminho de autorização
        ↓
Execução de montagem em contexto root

É por isso que a questão se qualifica como uma vulnerabilidade de escalada local de privilégios.


Porque Este Bug Importa

O udisks2 é normalmente confiável como um daemon privilegiado de gestão de armazenamento.

Um bug nesta camada tem alto impacto porque se situa entre:

root@kitploit:~
Utilizadores de sessões/ambiente gráfico
Chamadas de método D-Bus
Autorização PolicyKit
Operações de montagem de sistemas de ficheiros
Privilégios do daemon root

Uma falha na manipulação de identidade aqui pode afetar diretamente os limites de privilégio local.


Ideias de Deteção

Defensores podem monitorizar atividade suspeita de montagem do udisks2 envolvendo as-user.

Fontes de telemetria úteis:

root@kitploit:~
Logs do udisksd
Chamadas de método D-Bus
Logs do PolicyKit
Alterações na tabela de montagens
/proc/mounts
/etc/fstab
journalctl

Comandos úteis:

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

Padrões suspeitos:

root@kitploit:~
Utilizador não root a acionar Filesystem.Mount
Uso de as-user=root
Montagem inesperada sem prompt PolicyKit
Montagens sem nosuid/noexec/nodev
Execução setuid a partir de sistemas de ficheiros montados recentemente
Montagens inesperadas de dispositivos loop

Mitigação

Atualizar udisks2

Aplicar a correção fornecida pelo fornecedor quando disponível.

Correção planeada:

root@kitploit:~
udisks 2.11.2

Rever Entradas fstab

Auditar entradas que usam:

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

Especialmente rever sistemas de ficheiros que podem conter conteúdo executável ou setuid.


Restringir Acesso Local a Shell

Sendo uma vulnerabilidade local, reduzir o acesso local não confiável diminui a exposição.


Monitorizar Atividade de Montagem

Monitorizar operações de montagem inesperadas através de:

root@kitploit:~
udisksd

especialmente quando acionadas por utilizadores não root.


Aplicar Flags de Montagem Mais Seguros

Onde aplicável, usar:

root@kitploit:~
nosuid
noexec
nodev

Estes flags podem reduzir o impacto pós-montagem.


Reforçar Regras do PolicyKit

Rever regras do PolicyKit relacionadas com ações de montagem do udisks.

Garantir que utilizadores não privilegiados não possam acionar caminhos de montagem sensíveis sem autorização explícita.


Direção da Correção

Uma correção robusta deve assegurar que:

  • O UID do chamador D-Bus original seja preservado
  • O UID as-user calculado não substitua a identidade do chamador para autorização
  • mount_other_user sempre acione verificações PolicyKit adequadas
  • A execução de montagem em contexto root seja limitada a fluxos genuínos autorizados de root/admin
  • x-udisks-auth aplique consistentemente a autenticação
  • Caminhos de código relacionados, como manipulação de sistemas de ficheiros encriptados, sejam auditados

Cronograma de Divulgação


Créditos


Plano de Lançamento Público

Após o levantamento do embargo, este repositório pode ser convertido num repositório público de pesquisa com:

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

Adições públicas recomendadas:

  • link oficial do CVE
  • link do aviso da Red Hat
  • link da correção upstream
  • matriz de versões afetadas/corrigidas
  • guia de reprodução segura
  • notas de uso controlado do PoC
  • guia de deteção e hardening

Aviso Legal

Este repositório destina-se apenas a pesquisa de segurança autorizada, coordenação com fornecedores e validação defensiva.

Os scripts PoC destinam-se a ambientes de teste isolados.

Não execute estes scripts em sistemas que não possui ou para os quais não tem permissão explícita para testar.

Os autores não são responsáveis pelo uso indevido desta pesquisa.



CVE-2026-7867
Pesquisa de Escalada Local de Privilégios no udisks2



Baixar ferramenta
CampoValor
CVECVE-2026-7867
Produtoudisks2
ComponenteFilesystem.Mount
Tipo de AtaqueEscalada Local de Privilégios
PrimitivaSpoofing de as-user
Limite de SegurançaIdentidade do chamador D-Bus → execução de montagem privilegiada
Camada de AutorizaçãoAutorização PolicyKit / fstab
FornecedorRed Hat / upstream udisks
EstadoCorreção em andamento / divulgação coordenada
Correção Planeadaudisks 2.11.2
CondiçãoNecessária
Acesso de utilizador localSim
Versão vulnerável do udisks2Sim
Funcionalidade as-user presenteSim
Alvo de montagem gerenciado por fstab adequadoSim
Caminho de autorização vulnerávelSim
Acesso remotoNão
FerramentaPropósitoNecessário
busctlChamada de montagem D-BusSim
gccCompilar payload SUIDSim (fallback para cópia bash)
mke2fsCriar imagem ext4Sim (modo autocontido)
debugfsInjetar binário com uid=0Sim (modo autocontido)
python3-giD-Bus LoopSetup com passagem de fdOpcional (modo gráfico)
udisksctlConfiguração de dispositivo loopOpcional (modo gráfico)
ScriptPropósito
setup_lpe_env.shPreparar ambiente laboratorial (dispositivo loop, fstab, utilizador de teste)
f2_mount_as_user_bypass.shValidar bypass de Filesystem.Mount com as-user=root
f2_check_nosuid.shVerificar flags nosuid/noexec/nodev na montagem bypass
f2_suid_test.shTestar execução de binário SUID no sistema de ficheiros montado
f2_final.shPoC de ponta a ponta: configuração → bypass → verificar euid=0
cleanup_lpe_env.shRestaurar ambiente de teste
DataEvento
2026-04-21Relatório submetido à Red Hat Product Security
2026-04-21Red Hat confirmou receção
2026-04-28Fornecedor confirmou a lógica defeituosa
2026-04-28Fornecedor solicitou scripts PoC
2026-04-30Fornecedor solicitou atribuição CVE
2026-04-30Scripts PoC enviados ao fornecedor
2026-05-03Correção inicial do fornecedor partilhada
2026-05-05Correção atualizada do fornecedor partilhada
2026-05-05CVE-2026-7867 reservado
2026-05-05Ticket marcado como resolvido
2026-05-07Fornecedor indicou correção planeada para udisks 2.11.2
InvestigadorGitHubFunção
Azizcan Daştanazqzazq1Descoberta, análise, desenvolvimento PoC, coordenação com fornecedor
Özlem Ozanoz7oz7Colaboração em pesquisa e crédito de divulgação