
Exploit proof-of-concept per CVE-2023-0386, una vulnerabilità di escalation dei privilegi locale di Linux OverlayFS. Dimostra come una gestione errata delle capacità dei file durante il copy-up consente a utenti non privilegiati di ottenere accesso root.
Questo repository fornisce una prova di concetto per CVE-2023-0386: https://nvd.nist.gov/vuln/detail/CVE-2023-0386
Membri del team: Bǎnicǎ Dragoș-Marius e Borsos Matheas-Roland
Ecco il video: https://www.youtube.com/watch?v=Ikux1rjIYP0
Questo repository contiene un exploit proof-of-concept (PoC) per CVE-2023-0386, una vulnerabilità di escalation locale dei privilegi nel sottosistema OverlayFS del kernel Linux.
La vulnerabilità consente a un utente locale non privilegiato di elevare i propri privilegi a root sfruttando una gestione errata delle capacità dei file e della proprietà durante le operazioni di copy-up di OverlayFS. Il PoC dimostra come una configurazione OverlayFS accuratamente predisposta possa produrre un eseguibile che conserva privilegi elevati, anche se copiato da un mount nosuid.
OverlayFS è un filesystem union utilizzato per combinare più alberi di directory in un'unica vista unificata. È ampiamente utilizzato in:
OverlayFS è composto da:
Quando un file del livello inferiore viene modificato, OverlayFS esegue un'operazione di copy-up: il file viene copiato nel livello superiore e poi modificato lì.
La vulnerabilità risiede in come OverlayFS gestisce i metadati dei file durante il copy-up, in particolare:
CAP_SETUID)nosuidNelle versioni del kernel interessate:
nosuid.Ciò rompe l'assunzione di sicurezza che i mount nosuid impediscano l'escalation dei privilegi.
CVE-2023-0386_POC/
├── exp.c # Main exploit logic
├── fuse.c # User-space filesystem helper (FUSE)
├── getshell.c # Privilege escalation payload
├── ovlcap/ # OverlayFS capability test utilities
│ ├── Makefile
│ └── ...
├── Makefile # Top-level build instructions
└── README.md
nosuid.gccmakelibfuse-dev (o equivalente)libcap-dev (o equivalente)git clone https://github.com/dragosbanica/CVE-2023-0386_POC.git
cd CVE-2023-0386_POC
make all
Avviare due terminali e nel primo digitare
./fuse ./ovlcap/lower ./gc
Nel secondo terminale digitare
./exp