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-2023-0386-OverlayFS — Copy fake in-memory files to disk using overlayFS | Kitploit
Ferramentas/GitHubGitHub/pwncone/cve-2023-0386-overlayfs
Privilege EscalationVulnerability AnalysisExploitationLearning & EducationBinary Exploitation
GitHubpwncone/cve-2023-0386-overlayfs

CVE-2023-0386-OverlayFS

Copy fake in-memory files to disk using overlayFS

Ver Repositório
há 1 mêsAinda 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

CVE-2023-0386 - OverlayFS / FUSE

Fonte original do CVE escrita por xkaneiki: https://github.com/xkaneiki/CVE-2023-0386/tree/main

Reescrito para que o exploit possa ser executado em 1 shell (o exploit original requer 2 shells).

root@kitploit:~
# Compile
make all
# Create mount point for fuse filesystem
mkdir -p /tmp/fusepwn/lower
# Start fuse (which serves a SUID binary)
./fuse /tmp/fusepwn/lower
# Run exploit (which copies fuse's fake SUID binary onto disk with real SUID privs via overlayfs)
./exp
# Run shell
/tmp/fusepwn/upper/bin

Limpeza

root@kitploit:~
# unmount fuse filesystem
fusermount -u /tmp/fusepwn/lower
# remove all 
rm -rf /tmp/fusepwn
# unmount overlayfs (root only. not required)
umount /tmp/fusepwn/merge

Notas

  • Use findmnt para visualizar sistemas de arquivos montados
  • A montagem overlayfs é visível apenas pelo root (não sei o porquê)

Como funciona

fuse.c cria um sistema de arquivos fuse montado em /tmp/fusepwn/lower e serve um binário SUID falso de propriedade do root. Este é um sistema de arquivos em memória, então podemos mentir sobre as permissões definidas

exp.c então cria uma montagem overlayfs em /tmp/fusepwn e abre o binário SUID falso (/tmp/fusepwn/lower/bin). Quando aberto, isso aciona overlayfs para realizar um copy-up que escreve o binário SUID falso no disco com privilégios SUID reais e de propriedade do root.

A vulnerabilidade existe no overlayfs porque ele confia cegamente em quaisquer permissões de arquivo que estão sendo servidas a ele pelo sistema de arquivos inferior. Se o sistema de arquivos inferior é o kernel, isso é aceitável (porque não pode ser manipulado sem permissões de root). Se o sistema de arquivos inferior pode ser manipulado pelo usuário, isso não é aceitável porque podemos mentir sobre quais arquivos estão lá (como usando FUSE)

Patch

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4f11ada10d0ad3fd53e2bd67806351de63a4f9c3

O patch verifica se o UID/GID do arquivo é válido dentro do namespace do usuário. Se não for, ele falha no copy up.

ou seja,

  • somos bob
  • criamos um novo namespace como root mapeando 1000 (UID do bob) para 0 (root) em proc/self/uid_map
  • tentamos acionar um copy-up em um arquivo de propriedade do root
  • overlayfs verifica o mapeamento do bob e vê que o namespace do usuário é na verdade 1000 (bob) e não 0 (root) como o arquivo é, e falha o copy-up

Recursos úteis

  • Blog útil: https://engineering.facile.it/blog/eng/write-filesystem-fuse/
  • Exemplo de implementação FUSE: https://man.openbsd.org/fuse_main.3

Diagrama

diagram

Baixar ferramenta