The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Уязвимость в Bluetooth-стеке BlueZ, позволяющая удалённо выполнить код с правами ядра Linux"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Уязвимость в Bluetooth-стеке BlueZ, позволяющая удалённо вып..." +5 +/
Сообщение от Ordu (ok), 15-Окт-20, 15:20 
Данную ситуацию, если по-хорошему, и C исключает, если думать головой.

Там написано примерно следующее:

struct l2cap_chan {
    ...
    void *data;
    ...
};

Этот data может указывать на структуру, как минимум, двух разных типов. Об этом не написано в заголовке, где объявлен l2cap_chan (там на всю структуру с несколькими десятками полей ровно ноль комментариев). Это, видимо, большой секрет, и, надо полагать, задумка в том, чтобы оценить квалификацию разработчика по тому, сможет ли он разобраться в том, на какие типы может указывать data, и понять, когда и на какой тип он указывает. Собственно эта уязвимость говорит о том, что удалось найти как минимум одного разработчика, кто не смог разобраться. Ура-ура! Можно прочистить ряды разработчиков линукса, и ещё чуть-чуть поднять средний уровень квалификации разработчика.

Можно же было написать не void *data, а union, так? Можно было написать комментарий, поясняющий когда актуально то или иное поле union'а, так? Можно было добавить ещё одно поле типа enum, которое бы отражало актуальность полей union'а -- ну чтоб наточняк. Или ещё наточнее, можно было бы написать inline-функций доступа к полю data, которые бы максимально усложнили бы создание некогерентной структуры.

Но нет ведь, инкапсуляция -- это признак слабости. Если ты не можешь без инкапсуляции, значит иди дальше учиться программировать и повышать свою квалификацию. union вместо приведения типов? Для использования union'а надо пасть ниже всякой слабости.

Будь мужиком! Забей на возможности предоставляемые системой типов. Вкачивай лучше себе внимание с детства, это ключ к успеху.

Вот как раз такие, как я понимаю, и пропагандируют идею, что unsafe в rust'е перечёркивает все гарантии безопасности, которые даёт раст -- естественно: такие как они будут рассматривать неиспользование unsafe как признак слабости, и кончится это ровно тем же, потому что никакие возможности языка программирования не спасут от программиста-конченного дебила.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Уязвимость в Bluetooth-стеке BlueZ, позволяющая удалённо выполнить код с правами ядра Linux, opennews, 15-Окт-20, 10:13  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру