È stata dimostrata la possibilità di aggirare il divieto di caricamento dei moduli del kernel, implementato nelle regole SELinux mirate su uno dei dispositivi analizzati (non viene specificato di quale dispositivo si tratti e quanto il problema riguardi le norme SELinux nei firmware e nelle distribuzioni). Il blocco dei moduli nelle regole SELinux coinvolte si basava su una restrizione dell'accesso alla chiamata di sistema finit_module, che consente di caricare un modulo da un file e viene utilizzata in strumenti come insmod. Le regole SELinux non consideravano, però, la chiamata di sistema init_module, che può anche essere utilizzata per caricare i moduli del kernel direttamente da un buffer in memoria.
Per dimostrare il metodo è stato preparato un prototipo di exploit, che consente di eseguire codice a livello di kernel caricando il proprio modulo e disabilitando completamente la protezione SELinux, in presenza di un accesso root limitato tramite SELinux al sistema.
Fonte: opennet.ru
