Компания Qualcomm раскрыла сведения о 20 уязвимостях в прошивках и драйверах для своих чипов, большинство из которых используются в устройствах на базе платформы Android. Одной проблеме присвоен критический уровень опасности, 12 - высокий и 7 - средний. Отдельно выделена уязвимость CVE-2024-43047, которая по данным группы анализа угроз из компании Google уже применяется для совершения атак (0-day) сецслужбами и поставщиками программ, шпионящих за пользователями...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=62031
Кто ещё считает современные процессоры нешеретом?
Современные?
Ошибки в процах были всегда.
Думаю мало кто помнит знаменитый Pentium FDIV и зафакапленным модулем расчета операций с плавающей запятой.
Или F00F C7C8 который просто вешал комп.Из последних на слуху спектр и мелтдаун.
Но тут конечно особенность в том, что во всем виноват кривой код, а не железо.
Ну, Intel уже отказалось от SMT* в настолках, так что СПектры уменьшат своё влияние.* в пользу мелких ядер, которые будут автоматически кооперироваться в большие и сверхбольшие ядра с длинным конвейером, поэтому вкатили Intel Thread Director (кто ещё не понял). Не знаю, получилось ли у Келлера, посмотрим.
Это будет в новых процах, после 200-ой серии.
200-ми не станут? ;)
Если Интел купят - да ;)
Дуршлаг это делать прошивки прибитые гвоздями, а не вкатить критичное на обновляемую систему, хотя бы с ротацией корня.
> а не вкатить критичное на обновляемую системуеще "дуршлачнее" будет, "прибитость гвоздями" заставляет хоть как-то тщательности тестирования, а вот "обновляемость" - будет порождать "безалаберность" тщательности тестирования.
> Дуршлаг это делать прошивки прибитые гвоздями, а не вкатить критичное на обновляемую систему, хотя бы с ротацией корня.Теорема г-на Эскобара гласит нам, что первое - не самое хорошее деяние, что второе.
Но дырявая прошивка имхо все же хуже чем прибитая гвоздями, но тестированная.
Т.к куча девайсов просто не обновится.
Лучше скажи что теперь делать со сплошным протрояниванием всех устройств на снапе в ближайшем будущем.
Продать в ломбарде за полцены, доставщики купят, им сойдёт.
Хуавей, Юнисок
M$ со своими критическими обновлениями на систему уже прославилась на весь мир.)
А теперь ещё вспоминаем что Самсунгу было запрещено продавать смарты гелекси с собственным процессором в США и для этого рынка они принудительно ставили снепдрегоны в галактики. Теперь все встаёт на свои места и становится самоочевидно без всяких теорий заговоров.
Никто им ничего не запрещал. Но продавать свои телефоны с процессорами, а точнее SoC, радио часть которых не умеет в CDMA, всё ещё распространённый в США в то время, было бы как-то глупо. А нужные патенты на CDMA у Qualcomm.
Пора бы уже патентам на CDMA протухнуть. Сети CDMA, ведь, существовали ещё во второй половине 1990-х.
Теперь Моссад, АНБ и МИ6 не смогут засаживать зонды плохим парням. Qualcomm - враги демократии.
Они и раньше могли засаживать или как по твоему корректируют бомбы в Ливане? А вот то что сейчас любой Васян может хакнуть твои нюдсы это факт вполне медицинский. Пора переходить на голубиную почту.
Просто истек срок годности бекдора, пришло время обновиться.
патч довольно забавный, есть строки которые вызывают дежавю)
- struct fastrpc_mmap *map = ctx->maps[i];
+ struct fastrpc_mmap *mmap = NULL;
жаль пока нет патчей для zero day еще нет опубликованных> уже применяется для совершения атак (0-day) сецслужбами и поставщиками программ, шпионящих за пользователями.
зато драйвер работает быстро))
ps жду рассуждений от местных "ну ничего страшного дело то житейское"
> ps жду рассуждений от местных "ну ничего страшного дело то житейское"И что сказать то хотел?
> - struct fastrpc_mmap *map = ctx->maps[i];
> + struct fastrpc_mmap *mmap = NULL;Тут раст что, сказал бы: "Не инициализируй указатель i-ым элементов из массива, инициализируй NULL'ом. " ?
Учитывая, что речь идет о use after free - то да, компилятор Rust это бы забраковал сразу. Переменной ctx после дропа не существавало бы уже.
Конь-пилятор питона тоже. Переходим на питон.
Ну-ка, покажи как это было бы на расте в драйвере для DSP-чипа. Ничего не понятно из твоего объяснения. Talk is cheap, show me the code.
CMSIS-DSP подойдет?
Если да то можешь почитать
git.codelinaro.org/clo/la/platform/vendor/qcom/opensource/dsp-kernel/-/commit/0e27b6c7d2bd8d0453e4465ac2ca49a8f8c440e2> Talk is cheap, show me the code.
Угу, на код мы уже посмотрели, вот теперь можно и поговорить.
> git.codelinaro.org/clo/la/platform/vendor/qcom/opensource/dsp-kernel/-/commit/0e27b6c7d2bd8d0453e4465ac2ca49a8f8c440e2Прошу прощения, но Вы привели ссылку на патч из новости... Поиск в гугле по словам CMSIS-DSP привёл только к https://github.com/ARM-software/CMSIS-DSP, но там тоже вроде как всё на C/С++
> Прошу прощения, но Вы привели ссылку на патч из новости...Да, затупил и запутался в трех ссылках, сорян.
Вот та которую хотел отправить
interrupt.memfault.com/blog/rust-for-digital-signal-processing> Поиск в гугле по словам CMSIS-DSP привёл только к https://github.com/ARM-software/CMSIS-DSP,
> но там тоже вроде как всё на C/С++Ну, если есть что-то на C/С++, то разве это не повод переписать на раст)?
ps про раст это "Местный с житейским делом" начал рассказывать. Наверное сагрился на комменты анонов выше.
Мне бы подошли современные плюсы, главное чтобы без глупых ошибок, которые мой телефон становится шеретом.
ye b где код на расте то, к-й не cheap и где "Переменной ctx после дропа не существавало бы уже" ?
Ну и где код на расте то, к-й не cheap и где "Переменной ctx после дропа не существавало бы уже" ?
> Ну и где код на расте то, к-й не cheapЕсли бы код был, то мы бы не обсуждали новость про сишную дырень на млр. устройств.
Вообще бы новости не было, оно просто работает.> и где "Переменной ctx после дропа не существавало бы уже" ?
Достаточно почитать как работает borrowing в расте и вопросов бы не возникло.
Судя по коду переменную ctx никто и не думал освобождать, проблема была с ctx->maps[i], который мог быть освобождён в другом коде.
К тому же не известно "где бродила i" до этого. Осмысленный дефайн нельзя было использовать вместо i? Выглядит, как код технаря на коленках, который без корректуры попал в продакшен.
> К тому же не известно "где бродила i" до этого. Осмысленный дефайн
> нельзя было использовать вместо i? Выглядит, как код технаря на коленках,
> который без корректуры попал в продакшен.Вы не совсем поняли, с i там всё нормально, просто содержимое map[i] заполнили давно и возможно даже в другой функции, а в третьей, а может даже и ещё где, типа драйвера DMA успели проредить, и часть структур освободить. При этом этот массив, т.к. на самом деле он явным или неявным способом готовится пользовательской программой в usespace, то изменять, удалять оттуда "лишние" уже освобождённые элементы нельзя.
Это понятно было из первого поста - use after free. Но такой "Слепой" способ инициализации через непонятный индекс выглядит на скорою руку только сейчас потестить.
Единственный момент когда это оправдано - Вырезать фрейм в последовательности какого то аппаратного протокола.
Точнее некоторые из элементов массива ctx->maps[i].
А если время use и время free являются вычисляемыми? Что, раст все варианты исполнения программы обсчитает?
Раст определит Как вы берете это значение. Монопольно или заимствуете. К тому же есть умные указатели.
Так в С++ тоже есть, и модель памяти можно использовать любую.
> И что сказать то хотел?Передать привет местным) Правилами не запрещено.
> Тут раст
Замечу что раст ты упомянул первым)
А чего не с++? Там по коду народ начинает считает ref'ы. Ручками!
Может использование каких-то плюсовых фич помогло бы?Ну и я уже не упоминаю, что есть такой замечательный языка Ада, с подмножеством Спарк.
На котором пишут всякие программы и прошивки для случаев, когда нужна надежность.
Но для массовых процов для б̶ы̶д̶ плебса, которых продали миллиарды штук, безопасность явно не на первом месте.
> ps жду рассуждений от местных "ну ничего страшного дело то житейское""Ничего страшного"? То что C'шники, как не пытаются, не могут избавить свой код от тупейших багов, которые легко устраняются растом -- это превосходно. Это именно то, о чём говорит rust: инварианты кода должны проверяться алгоритмически, нейросетки (цифровые или биологические) для этого не годятся совершенно. И сишники-няшки постоянно об этом напоминают всему миру, чтобы мир не забывал постепенно переходить на раст.
> "Ничего страшного"? То что C'шники, как не пытаются, не могут избавить свой
> код от тупейших багов, которые легко устраняются растом -- это превосходно.Угу, вон наверху уже показывают свой интеллект на уровни табуретки.
> Это именно то, о чём говорит rust: инварианты кода должны проверяться алгоритмически,
Они не понимают таких слов, но несут чушь про "веру")
> нейросетки (цифровые или биологические) для этого не годятся совершенно.
Пока не годятся.
Предположу, что если нейросетку тренировать на коде написанном хорошо (типа MISRA) то она сделает меньше ошибок чем типичный СИшник.> И сишники-няшки постоянно об этом напоминают всему миру, чтобы мир не забывал постепенно переходить на раст.
Зато они весело дергаются))
И сами вспоминают раст, даже до того как ты про него написал.
Наверное это уже какое-то заболевание типа ОКР.
> Предположу, что если нейросетку тренировать на коде написанном хорошо (типа MISRA) то она сделает меньше ошибок чем типичный СИшник.Сомнительное утверждение. Чтобы не делать ошибок, надо рассуждать логически, а не работать по паттернам типа "как правило такие вещи пишут так, и поэтому я напишу так же". Причём эти логические рассуждения часто должны быть не локальны, а глобальны, то есть рассуждать надо не о коде данной функции, а о программе в целом и как эта функция вписывается в эту программу.
Нейросетки когда-нибудь смогут переплюнуть C'шника, но тогда, когда их объединят с движком логического вывода, который будет проверять код нейросетки, и тыкать её носом в баги, которые она допустила. А это, в свою очередь, опять же приводит нас к расту: нейросетке лучше писать на расте, чтобы переплюнуть сишника, раст будет подтирать ей сопли и следить за отсутствием если не всех багов, то хотя бы некоторых.
Нейросетка лучше всего генерирует код на том языке для которого больше датасет, а на Расте это увы в основном только обертки над C-библиотеками. Поэтому на данный момент нейросети генерируют код на С гораздо качественнее, чем на Расте, который еще к тому же нестабилен и изменится в будущем.
> не могут избавить свой код от тупейших багов, которые легко устраняются растом -- это превосходноОй, можно подумать растаписаки не портили бы память и не делали бы use-after-free если бы не умный препроцессор, к-й они называют языком программирования :) Они этого не делают не потому что у них какая-то другая культура программирования и лучшая дисциплина, а потому что за них это делает раст.
> Ой, можно подумать растаписаки не портили бы память и не делали бы use-after-free если бы не умный препроцессор, к-й они называют языком программирования :)"если бы дедушка был бабушкой..."
Твои фантазии это конечно классно, но реальности мало относится.> Они этого не делают не потому что у них какая-то другая культура программирования и лучшая дисциплина, а потому что за них это делает раст.
Не, у них как раз культура другая.
Они понимают что если человеку дай волю, то он будет гадить мимо памяти.
Поэтому сделали механизм, который за это по рукам лупит.А вот у дыряшечников, так сказать, "культура" это "анархия и творю что хочу".
Ну рассуждаю в Вашей логике - те кто пользуется компиляторами, а не пишут сразу в машинных кодах это лентяи, которые думают не известно о чем в момент программирования. ))
Братан, раст - это не только боров, который в прочим норм концепт, а ещё и 100500 перделок, которые идут в комплекте
Со временем лучшее неизбежно перейдет в другие языки, такие как С++, а остальной мусор даром не нужен.
Пока С'шники пишут рабочий код, Rust'овики только фантазируют какой распрекрасный код они могут написать.
Объявлен период обвала цен на акции производителей процессоров. Intel уже можно выкупать, Qualcomm следующий.
Будет хреново жить в мире победившего медиатека.
Даже китайцы те же Ксяоми для внутреннего рынка используют Медиатек, а глобальные версии той же модели выходят на снапдрегоне. Это жж неспроста.
Естественно, во первых в МТК есть чудные широко известныен в укзих кругах АТ комманды, которых нет AFAIK в снапах. А во вторых в снапах по умолчанию режим работы в гипервизоре который контролится фирмварой сока, и даже если ты соберешь линейку и зальешь на свой телефон (лень ссылки искать, гугли), отстукивать будет по прежнему.
При наличие печатного денежного станка выкупить можно всё. Игра на понижение - просто комиссионные агентам.
Так Qualcomm и собирался выкупить Intel. Теперь неясно, что дальше будет.
Главная беда что 99% пользовательских андроидов обновлены не будут. Ибо срок поддержки окончен. И вот это как-раз наиболее паршиво. как и то что нормальных дистрибутивов андроида просто нет. А те что етсь "ваше устройство скорей всего не поддерживается" ибо зоопарк девайсов и билдов. Это вам не линукс дистры с патчами приходящими до публикования уязвимости и в максимально короткий срок.
> Главная беда что 99% пользовательских андроидов обновлены не будут.Угу, с другой стороны, когда покупали - знали же, что обновы будут на 2-3 года?
Из длительной поддержки только топы гнусманов и пиксели.> как и то что нормальных дистрибутивов андроида просто нет
Конечно нет, потому что никто их не делал.
> Это вам не линукс дистры с патчами приходящими до публикования уязвимости и в максимально короткий срок.
Хахаха, ты что не сталкивался с тем что уязвимость уже опубликована, а мейнтернеры еще ваньку валяют?
А это, наверное, каждая третья новость про уязвимость в ведре.
С андроидом проблем нет.
Есть БОЛЬШАЯ проблема с отсутствием драйверов для GNU/Linux в мобильных телефонах: https://wiki.postmarketos.org/wiki/All_devices
Если есть ВСЕ драйвера для модели, то можно ставить на мобилу хоть Gentoo, хоть LFS без особых проблем!
На поиграться рекомендую выбрать поддерживаемую модель и купить БУ подешовке. CPU - 8 ядер, RAM - 8Gb, Storage - 128Gb: вполне годно для неспешной найтивной сборки и удобной работы.
> Если есть ВСЕ драйвера для модели, то можно ставить на мобилу хоть Gentoo, хоть LFS без особых проблем!А драйвера под маргинес кто писать должен? Ну не производитель же.
Ему норм и с закрытыми дровами, а заставить открыть коммуняки его пока не могут.postmarketos это просто тонна типа поддерживаемых устройств, у которых то тач не работает, то gsm модуль, в общем не очень нужные вещи))
Кто заставляет делать дрова частью ядра? Может сама концепция монолитности? В микроядрах дрова будут только модулями, а концепция микроядра заставляет тащить совместимость. Как итог любой блоб может работать где угодно сколько долго угодно при всех изменениях и обновлениях основного микроядра и всей системы.
Линус Торвальдс категорически против драйверов вне ядра. Он утверждает, что рабочими будут только дрова в ядре. Есть поддержка модулей, но производители не обновляют их для свежих ядер... Монолитное ядро оптимально во многих отношениях.
> Линус Торвальдс категорически против драйверов вне ядра. Он утверждает, что рабочими будут только дрова в ядре.Ага-ага, от никогда такого не было, что бы в ядре драйвер поломанный или дырявый.
"В драйвере Nouveau выявлена ошибка, приводящая к повреждению памяти в ядре Linux 6.3"
opennet.ru/opennews/art.shtml?num=59305Г == "качество"
> Есть поддержка модулей, но производители не обновляют их для свежих ядер... Монолитное ядро оптимально во многих отношениях.
Особенно для тех, когда один кривой драйвер падает и утягивает всю систему.
В том и дело что производители ничего не должны обновлять. Однажды написанный модуль драйвер должен работать с ядром любой версии десятки, а то и сотни лет. А микроядро даже если меняется должно и обязано делать прослойку совместимости для всех версий протокола дров и аби и апи и всего. При это само ядро ничего не должно знать про драйвера замена одного блоба на другой не должна никоим образом сказываться на работе системы. Это сделает возможность простого и безболезненного обновления. Ждем Редокс или Фуксию или любое другое нормальное микроядро.
> Однажды написанный модуль драйвер должен работать с ядром любой версии десятки, а то и сотни лет.Ты что, хочешь как винде??
Вся фишка линукса в stable api nonsense!
Иначе оно будет работать годами и не придется пересобирать код каждую патченную версию ядра, не придется править интерфейсы и зарабатывать на поддержке.> Ждем Редокс или Фуксию или любое другое нормальное микроядро.
Не дождемся. Потому что производителей это тоже устраивает.
Вышел смартфон с ядро 5.10 - вот с ним и помрет.
Микроядро проигрывает по скорости монолиту в 100-20 раз в зависимости от реализации. Очень дорого обходится проверять права каждый раз при входе в контекст ядра процесс какого-то драйвера.
> Ну не производитель же.Именно производитель и должен писать и оплачивать драйвера для своего оборудования. Пример Qualcomm, с него все драйвера сорвали, кроме беспроводной связи, чтобы частоты и мощность антенны изменить нельзя было. Капиталисты молодым в отношении свободных открытых драйверов!
> заставить открыть коммуняки его пока не могут.
Вот смотрю на коммунистический Китай и в упор не виже никакого просвета по открытию коммунистами драйверов под Linux для мобилок. А Loongson - драйвера открыли, а девайсов не продают.
В Китае от коммунизма одно название осталось
Да в postmarketos 2,5 калеки по количеству нормально поддерживаемых устроиств к сожалению.
В остальных не работают довольно существенные вещи.
Искал мобилу где в GNU/Linux работает камера, инет, звонки и SMS - не нашел.Взял за 70$ мобилу: CPU - 8 ядер, RAM - 6Gb, HD - 64Gb. Код поддержки камеры есть, но камера снимает одни помехи, батарея и GPS поддерживаются не полностью, остальное работает отлично :)
Снимать рав с камеры такое себе занятие. Там конечно патентованные алгоритмы улучшайзеры, но можно и просто opencv обработать. Отдельно отмечу насколько медленно работает шумодав на постобработке в opencv. Как этот процесс происходит в реальных камерах это просто магия.
В андроид обработка фото и видео с камеры идёт через DSP HEXAGON.
У llvm есть поддержка HEXAGON. Где ошибка в текущем коде для поддержки камеры неизвестно, надо больше тестов чтобы камера заработала в Linux.
"Нормально" там не поддерживается вообще ни одно устройство. Оно вроде до недавнего времени даже звонить не могло.
Да какое это имеет значение, если устройства на этих страх в основной своей массе одноразовые на год-два.
"Проблема затрагивает системы с чипами различных серий Immersive Home, IPQxxxx, QCAxxxx, QCFxxxx, QCNxxxx, SDXxx и Snapdragon X65 5G Modem-RF" Куча роутеров и микротики в том числе попали в этот список похоже.
Интересно, придёт ли обновление от Samsung владельцам относительно старых, но всё ещё годных телефонов? Например серии S10.
У меня жесткий инсайд. Нет не придёт.
s10+, купленный на старте, у меня наконец в это время году сдох, отходив 5 лет. Возможно, сдох он тупо из-за просевшей батареи, но выяснять было бы дороже, чем он стоит: бутлупы либо по просадке напруги, либо по от смерти флешки. И что-то мне кажется, самые щасливые экземпляры протянут ну ещё годик, два, максимум, так что какой смысл его апдейтить.
Впрочем, мой на Exynos был, ему и не надо было, но обновляться он перестал в 2021 году уже.
Так что нет, не будет
У тебя сдох, а у меня его меньший брат прекрасно работает до сих пор и даже не собирается умирать.
> У тебя сдох, а у меня его меньший брат прекрасно работает до
> сих пор и даже не собирается умирать.у меня он тоже прекрасно работал, до тех пор пока в один прекрасный день не решил начать бутлупаться, так что тут такое, телефоны умирают именно так, ssd / аккум + борьба производителей с легкой заменой компонентов.
Эльбрус самый защищённый проц, и это не потому что никто не искал дыры и закладки, а потому что он нафиг никому не сдался ни на десктопе ни в серверах.
Потому что его нет и выпускать его негде.
Так просто для того чтобы его удаленно потестить требовалось пройти собеседование (не шутка).
Потому что был в единственном экземпляре.