Spuštění kódu v "prostoru jádra" znamená jeho spuštění v prostoru kruhu 0. Jinými slovy, je to přísná definice „mít úplnou kontrolu“.
Jedinou výjimkou by bylo, pokud používáte hypervizor. V takovém případě by vám spuštění kódu v kruhu 0 virtualizovaného OS poskytlo „pouze“ plnou kontrolu nad virtualizovaným zařízením, nikoli nad hypervizorem (o kterém se říká, že běží v kruhu -1), na kterém běží. Abyste se k tomu dostali, potřebovali byste samostatný únikový exploit.
Dalo by to útočníkovi úplnou kontrolu nad telefonem? Mohli by například nainstalovat keylogger nebo jiný malware?
To je možné. Vzhledem k tomu, že jakékoli kontroly oprávnění (tj. přístup k souborům, přístup ke klávesnici...) se provádějí uvnitř jádra, kód běžící uvnitř jádra může vyvolat potřebné akce jednoduše přímo bez provádění těchto kontrol.
Umožnilo by to kompromitovanému zařízení provést OTA útok na jiná zařízení stejným způsobem (stal by se červem)?
Je možné, že některé akce vyžadují přístup k jádru, například schopnost vytvářet manipulované síťové pakety, které lze použít ke kompromitaci jiného zařízení. To ale neznamená, že pro takové útoky vždy potřebujete přístup k jádru, tj. obvykle stačí přístup root a někdy to může udělat i běžný uživatelský proces, v závislosti na přesném útoku.
Jsou tyto obavy zmírněny jinými bezpečnostními funkcemi, jako je SELinux, dm-verity atd.?
Jakmile má útočník přístup k jádru, tyto techniky nepomohou. Mohou však pomoci, aby útočník nezískal přístup k jádru. Ale jestli pomohou nebo ne, záleží na přesném vektoru útoku. Nepomohou například v případě nedávné zranitelnosti síťového ovladače Broadcom, kterou by mohly spustit specifické síťové pakety.