
POC più portabile di copyfail LPE (CVE-2026-31431) che funziona su Alpine Linux
Questa è una versione più minimale del port di Copy Fail LPE (CVE-2026-31431) che modifica i primi byte di /etc/passwd in modo che su-ing verso root non richieda password. Questo riduce la dimensione totale dell'exploit originale e lo rende più portabile. Distribuzioni come Alpine usano busybox/musl invece di un binario su standalone e il collegamento glibc, quindi il metodo originale di patching del binario generalmente non funziona. Volevo specificamente realizzare un port che funzioni su Alpine, ma questo metodo dovrebbe funzionare su quasi qualsiasi distribuzione con un kernel vulnerabile, indipendentemente dal formato del coreutil sottostante e dall'architettura della CPU, poiché si basa sulla modifica di un target più ubiquitario. (nota: questo PoC non è un container escape)
Usa l'implementazione Go per un binario portatile standalone:
go build -o exp main.go
./exp

Oppure esegui semplicemente lo script python come utente non privilegiato usando python3 exp.py e goditi la tua shell di root.

Testato su Alpine Linux 3.20.5 con kernel 6.6.69.
Il blob compresso contiene la stringa di byte root::0:0: che rimuove la 'x' dalla voce originale per root (root:x:0:0:root:/root:/bin/sh), bypassando il controllo della password in /etc/shadow quando viene chiamato su.
Riferimenti: