- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 14:38 , 03-Окт-23 (1)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:36 , 03-Окт-23 (13) +4
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:43 , 03-Окт-23 (17) –1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., мяя, 16:13 , 03-Окт-23 (28) +4
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., мяя, 16:33 , 03-Окт-23 (35) +1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., мяя, 16:33 , 03-Окт-23 (36)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 19:43 , 03-Окт-23 (70) +1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 19:46 , 03-Окт-23 (71) +1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 16:19 , 03-Окт-23 (31) +1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., мяя, 16:37 , 03-Окт-23 (38)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 20:01 , 03-Окт-23 (74) +1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., мяя, 22:29 , 03-Окт-23 (96)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., мяя, 22:39 , 03-Окт-23 (97)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 23:57 , 03-Окт-23 (103)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Ddddd, 09:41 , 04-Окт-23 (120)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Ddddd, 09:44 , 04-Окт-23 (121) [V]
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 14:55 , 03-Окт-23 (2) +1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:11 , 03-Окт-23 (5) –6 [V]
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:17 , 03-Окт-23 (7) +5
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:46 , 03-Окт-23 (19)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Иван_Лох, 16:28 , 03-Окт-23 (33) –1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 16:54 , 03-Окт-23 (40) +3
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 17:03 , 03-Окт-23 (44) +2
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Анонем, 20:33 , 03-Окт-23 (80)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 21:02 , 03-Окт-23 (84) +3
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., 123, 10:42 , 04-Окт-23 (128) +1 [V]
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 17:42 , 04-Окт-23 (142)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 16:14 , 04-Окт-23 (138)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 16:59 , 04-Окт-23 (140)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 18:43 , 04-Окт-23 (144)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 21:15 , 04-Окт-23 (148)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 13:46 , 05-Окт-23 (165)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 15:43 , 05-Окт-23 (175)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 07:07 , 06-Окт-23 (185)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 14:18 , 06-Окт-23 (190)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 14:30 , 06-Окт-23 (191)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Sw00p aka Jerom, 16:29 , 03-Окт-23 (34) +1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 16:06 , 04-Окт-23 (136) –2
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:24 , 03-Окт-23 (10) +1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:48 , 03-Окт-23 (20) +1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:56 , 03-Окт-23 (21)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 17:06 , 03-Окт-23 (45) –1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., фнон, 17:26 , 03-Окт-23 (49)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 17:52 , 03-Окт-23 (54)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Анонин, 18:10 , 03-Окт-23 (57) –1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 18:15 , 03-Окт-23 (58)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Анонин, 18:22 , 03-Окт-23 (60) –1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 22:45 , 03-Окт-23 (99) –1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 00:14 , 04-Окт-23 (108)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 10:00 , 04-Окт-23 (123)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 14:07 , 05-Окт-23 (166)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 15:45 , 05-Окт-23 (176)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 22:43 , 03-Окт-23 (98)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., 48, 02:48 , 05-Окт-23 (152)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Анонин, 15:40 , 03-Окт-23 (15) +3
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:44 , 03-Окт-23 (18) –1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., maxis11, 21:17 , 03-Окт-23 (90) +1
В GPU (как и к сетевым адаптерам) применяется как можно меньше прослоек и проверок по доступу памяти к/из устройства дабы это все работало максимально быстро. Это косвенно можно проверить по: 1. в спеках OGL/Vulkan для части функций написано, что при неправильном их использовании(привет indirect) ОС может начать неправильно работать; 2. DRM подсистема чаще других использует DMA-API (тот же Prime, например). Почему это так нужно? Если развернуть графический стек (от запуска цикла отрисовки до вывода картинки на экран), то получается, что display controller (если мы говорим про Mali или PowerVR, то dc является отдельным блоком) должен выделять фреймбуферы (обычно используется двойная буферизация), чтобы передать их в блок GPU. У DC, как и у GPU может быть своя модель памяти (на PCI или нет, используется ли отдельный блок IOMMU или CMA и.т.д.) В свою очередь GPU сам создает кучу различной памяти внутри себя(открой графический конвейер и глянь сам) как и для взаимодействия с CPU (оно все работает асинхронно, простым mmap'ом и остановкой устройства для тоже синхронизации дело не сделаешь). Про когерентность кэшей я даже не хочу говорить. И вот этот весь стек я написал для одного приложения (и одного видео-выхода). А графических приложений (все современные DE используют аппаратное ускорение) может быть много (для этого и придумали DC, чтобы он аппаратно все blit'ил), все должны выводиться 60 фпс+ в 4k, а GPU вообще может виртуализироваться между несколькими гостевыми ОС. Мой посыл в этом всем: Васян — это ты; если тебе страшно жить в этом графическом мире, то выкинь ускоритель, так как он будет либо очень медленно работать, но "безопасно", либо в стеке постоянно будут находить дыры; комментаторам из опеннета советую учить мат часть.
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним333, 21:46 , 03-Окт-23 (92)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 22:16 , 03-Окт-23 (93)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., maxis11, 23:38 , 03-Окт-23 (102) +1
Самое ужасное, что дьявол кроется в деталях. Рассмотрим CVE-2023-4211: если коротко, то CPU(OS) посылает команду, которая просит в вершинный конвейер запихнуть удаленные данные (можешь попробовать отправить мусорный indirect или bindless текстуры и увидеть синий экран смерти/ring timeout с последующим reset'ом/и.т.д.) Скорее всего в прошивки происходит page fault и его MMU выдает bus-адрес куда-то куда не следует выдавать, ядро это преобразовывает в виртуальный адрес и это все выдается пользователю. Потому что GPU работает в своей ОС — прошивка, которая работает на микрухе (можешь поизучать atombios, а не демагогию устраивать) со своей памятью и управление ей, управление питанием устройства, запуском кастомного кода из user-space'а (те самые шейдеры в виде IR) и.т.д. Все это дело прокидывается ей из GPU в пространстве ядра (хоть не в пространстве Intel ME/ ARM TrustZone уже хорошо). Поэтому, чтобы исправлять уязвимости, нужно исправлять все возможное неправильное поведение команд из user-space в kernel-space, так как дальше идет черный ящик, который имеет доступ к многим вещам и никак это особо не поправишь. В микроядерных ос, что я знаю, идет серьезная потеря перфы и повышенное энергопотребление из-за этого самого "ДМА там или хренуа", никуда от этого не деться. Так вот, главный смысл графического ускорителя, чтобы никакой "потери перфы" не было, как и то, чтобы у тебя рука не расплавилась держа смартфон.
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 00:34 , 04-Окт-23 (112)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., maxis11, 01:13 , 04-Окт-23 (113) +2
Там хуже все, в GPU есть микруха, которая управляет этим самым устройством (в PowerVR это mips, meta и недавно risc-v завезли). На нем запускается прошивка, которая по сути является микро-rtos. Помимо загрузки самой прошивки ещё и передается куча памяти, которая она сама внутри будет управлять (это все на уровне ядра). PCI-e является шиной(да, я кэп) она изоляцию делает на уровне примерно никакой. DMA нужно, чтобы синхронизировать память устройства с RAM памятью (про P2PDMA не говорю). В общем случае у тебя запускается на микрухе блоб, которая находится в PCI-e (в случае дискретной карты), прокидывается туда память (то есть там микруха, которая читает и записывает в/из RAM), и она сама себе работает. Раз уж пошла такая пьянка, то вот ещё история из моего GPU-драйверописания. В случае с закрытым драйвером все ещё хуже (а насколько понял из новости это именно он). Так как они в линуксах не могут использовать большинство API из-за GPL, то обычно они вообще пилят все свою инфраструктуру вместо использования готового (свои аллокаторы, кучи, синхронизации, и.т.д.), склеивают как-то с линуксовым ядром и выносят большую часть функционала в user-space библиотеки (дабы не делиться исходниками). Это все выглядит примерно так: вместо x + y, в программе вызывается ioctl с инициализацией x и y, которое идет в ядро. Модуль ядра берет свой написанный аллокатор поверх alloc_pages возвращает какие-то дескрипторы в структуру (в моем случае ImgTec полностью соблюдали венгерскую аннотацию, из-за чего любое название выглядело как записи чернокнижников). После этого в user-space происходит какая-то проверка и вызывается ioctl с "вызывать операцию для операторов", где ядро уже складывает x + y и возвращает сумму в x. После чего вызывается ioctl для синхронизации x, y. И в ядерном модуле вызывается уже самописные memory barrier'ы на ассемблере (спрятанные по десятком макросов). Потом программа просит ядро экспортировать хэндл x (тоже через ioctl), и наконец выводит сумму. О качестве кода такого драйвера можно догадаться (зато в стиле микроядра).
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 10:42 , 04-Окт-23 (127)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 18:32 , 04-Окт-23 (143)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноньимъ, 21:26 , 04-Окт-23 (149)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., maxis11, 02:47 , 05-Окт-23 (151)
> У ARM вроде не настолько продвинутые GPU чтоб свой MMU еще был, это вам не амдшка.Я не работал с амд на уровне допиливания прошивки (только на уровне драйвера), но сейчас занимаюсь этим для PowerVR. Именно в самой прошивки и создаются различные кучи инстансов устройства (к счастью без виртуализации она всего одна) и MMU там нужен для наложения всего этого. Предположил, что Mali +- одного класса устройства как PowerVR блоки, поэтому предположил, что и в прошивки это все реализовано. Сейчас зашел в реализацию panfrost и там действительно mmu на уровне драйвера работает (CPU), был не прав (ARM, получается, не осилили?) > 1) Atombios выполняется интерпретером на стороне драйвера, внезапно. GPU рассказывает как с ним работать таким странным способом. atombios взял, потому что: у них довольная солидная таблица команд, для управления микрухи (ну и прошивки которая крутится на ней) и по коду становится понятно, что там отдельный управляющий блок с отдельной rtos. В PowerVR там проще: настройка pagetable'ов как раз для MMU (по факту pool dma памяти передается по регистрам), наложение прошивки на heap устройства и, собственно, отправка адреса на начало boot секции в регистр. После этого GPU запущено. > 2) У ARM ничего подобного вроде бы нет. Там достаточно тупенькие считалки. Написал, что был не прав. Но вообще, свой MMU есть не только у дискретных карт, причем это далеко не новая технология. Интересно почему так. > Основная фича ускорителя в основном куча SIMD-образных крушилок. Очень сильное упрощение. Можно прировнять будет, только тогда, когда останется mesh-шейдеры с трассировкой лучей (при том, что аппаратный тайлинг никуда не делся). Но этого не будет, так как чистая считалка одна из многих областей применения. Для мобильных GPU на долгие годы останется хитрый конвейер (спойлер: этапов там больше, чем описаны в спеках OGL/Vulkan) с хитрым аппаратным растеризатором (ну и аппаратным тайлингом) + аппаратный (де)кодировщик. И чтобы это все быстро выключалось, а также быстро включалось (дабы экономить батарею). Поэтому набрать самый большой FLOPS не является приоритетной задачей. Нейронку тебе на мобильном GPU никто не будет запускать, для этого есть VPU/NPU блок (может сразу в камере, поэтому многие хуже работают без сладких блобов в LineageOS том же). Красивый графоний конечно нужен, но также нужно, чтобы телефон через 5 минут не вырубился. По этому пункту вы не правы.
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Sw00p aka Jerom, 00:33 , 04-Окт-23 (111)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:13 , 03-Окт-23 (6) +4
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., birdie, 15:19 , 03-Окт-23 (8) –4 [V]
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:29 , 03-Окт-23 (11) +3
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Kuromi, 15:35 , 03-Окт-23 (12) –1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 15:39 , 03-Окт-23 (14)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., YetAnotherOnanym, 20:07 , 03-Окт-23 (76)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 10:02 , 04-Окт-23 (124)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 17:25 , 03-Окт-23 (48) –2
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 20:07 , 03-Окт-23 (75) –1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., uis, 20:21 , 03-Окт-23 (78)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 20:41 , 03-Окт-23 (82)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Анонимусс, 21:00 , 03-Окт-23 (83) –1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 00:27 , 04-Окт-23 (110)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 08:53 , 04-Окт-23 (119) +1
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Аноним, 11:52 , 04-Окт-23 (130)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., ИмяХ, 21:05 , 03-Окт-23 (85)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Пряник, 10:15 , 04-Окт-23 (125)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., nymous, 15:31 , 04-Окт-23 (134)
- Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..., Бульдох, 20:31 , 04-Окт-23 (147) –1
|