Non so come viene eseguito esattamente un kernel UML sul sistema host. Sto speculando interamente , ma le mie speculazioni potrebbero essere utili se puoi combinarle con alcuni documenti sulle implementazioni di UML.
Escalation di privilegi nel guest con un exploit specifico per il cliente
Essere root sul kernel guest dovrebbe essenzialmente permettervi di fare tutto ciò che volete con i privilegi del PID che è stato usato per eseguire questo kernel.
Se l'esecuzione di un kernel UML viene eseguita con UID 0 (che suppongo sia improbabile), il processo non viene eseguito in uno spazio dei nomi PID e il processo è stato lasciato con uno dei molte funzionalità che consentono i privilegi completi , quindi sei in un problema profondo e profondo e dovresti considerare l'intero host da contaminare.
Se quel processo viene eseguito con UID 0 all'esterno di uno spazio dei nomi PID ma con qualche forma di applicazione MAC, ciò che può fare e come può persistere dipende dal sistema specifico. I ruoli di SELinux potrebbero essere particolarmente utili per aggiungere una protezione aggiuntiva. Probabilmente sei nei guai.
Se il processo viene eseguito con un altro UID o è bloccato in uno spazio dei nomi PID, è più probabile che sia protetto. La VM guest sarà fatta per, ma dovrebbero esserci dei limiti a ciò che può fare il tuo avversario e il resto del sistema host potrebbe essere protetto in modo decente.
Escalation di privilegi con un exploit che si applica anche all'host
Non è improbabile che l'host del tuo kernel UML sia lo stesso kernel. Quindi, supponendo che un utente malintenzionato abbia trovato un modo per abusare di un kernel UML, sarebbe ragionevole presumere che abbiano anche un exploit per il kernel host, eccetto per:
- Namespace e MAC potrebbero fornire una certa quantità di protezione assicurando che meno dell'interfaccia di syscall di Linux sia disponibile e che potrebbe impedire al tuo aggressore di eseguire l'exploit.
- Un exploit che si basa su un modulo non attendibile presente solo nel kernel guest non comporterebbe nemmeno un compromesso dell'host.