Компания Samsung модифицировала ядро Linux для последних моделей своих смартфонов и планшетов, основанных на SoC Exynos 4210 и Exynos 4412. В результате этой модификации любой пользователь и любое приложение Android имеет право доступа на чтение и запись в любую ячейку физической памяти.
На нижеперечисленных смартфонах Samsung имеется устройство /dev/exynos-mem, которое аналогично /dev/mem в обычном ядре Linux, но в случае с Samsung здесь кто угодно может получить к нему доступ.
В коде /dev/exynos-mem есть одно-единственное ограничение на доступ к памяти, оно выглядит так:
/* TODO: currently lowmem is only avaiable */
if ((phys_to_virt(start) < (void *)PAGE_OFFSET) ||
(phys_to_virt(start) >= high_memory)) {
pr_err("[%s] invalid paddr(0x%08x)\n", __func__, start);
return -EINVAL;
}
Другими словами, устройство разрешает только чтение/запись в физическую память, включая память ядра. Причиной подобного парадоксального ограничения может быть саботаж со стороны какого-то программиста Samsung перед увольнением или вопиющая безграмотность.
Уязвимость присутствует на смартфонах следующих моделей:
- Samsung Galaxy S2 GT-I9100
- Samsung Galaxy S3 GT-I9300
- Samsung Galaxy S3 LTE GT-I9305
- Samsung Galaxy Note GT-N7000
- Samsung Galaxy Note 2 GT-N7100
- Verizon Galaxy Note 2 SCH-I605
- Samsung Galaxy Note 10.1 GT-N8000
- Samsung Galaxy Note 10.1 GT-N8010
Нужно заметить, что та же модель S3 выпускается и на чипе Qualcomm Snapdragon вместо Exynos, в этом случае уязвимость отсутствует.
Естественно, что наличие такой уязвимости даёт возможность создать простой и вредоносный эксплойт, например, через обновление любой программы для смартфона.
Компания Samsung уже уведомлена об уязвимости и работает над выпуском обновления. Пользователи уже опубликовали для Samsung патч, который нужно внести в ядро.
В то же время выпущен неофициальный патч, который меняет значение ueventd.smdk4x12.rc, но неизвестно, как он повлияет на работу других приложений в системе: exynos-abuse.tar.gz.