The OpenNET Project / Index page

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

Уязвимости в драйвере ozwpan, позволяющие удалённо вызвать крах ядра Linux

14.05.2015 09:10

В поставляемом в составе ядра Linux драйвере ozwpan выявлено пять уязвимостей, четыре из которых позволяют инициировать крах или зацикливание ядра через отправку специально оформленных пакетов (packet-of-death). Первая и вторая проблемы связаны с выходом за границы буфера из-за некорректной обработки знаковых целых чисел, третья проблема вызвана условиями при которых выполняется деление на ноль, четвёртая проблема приводит к бесконечному зацикливанию, пятая проблема вызвана возможностью чтения из областей вне границ выделенного буфера. Для демонстрации проявления уязвимостей подготовлены прототипы эксплоитов.

Опасность выявленных уязвимостей компенсирует достаточно специфичный характер драйвера ozwpan, который используется в редких случаях и имеет статус экспериментального (staging), а также необходимость отправки пакетов на канальном уровне в рамках одного сегмента локальной сети. Драйвер ozwpan предоставляет реализацию хост контроллера USB, в которой вместо физического подключения устройства, взаимодействие с периферией осуществляется через Wi-Fi. Драйвер может быть сопряжён с существующими беспроводными устройствами, совместимыми с технологией Ozmo Devices (Wi-Fi Direct). Метод работы сводится к преобразованию USB-команд в протокол второго уровня сетевой модели с последующей передачей в форме пакетов c типом (ethertype) 0x892e. Драйвер принимает такие пакеты, разбирает их и преобразует в функциональность USB.

  1. Главная ссылка к новости (http://seclists.org/oss-sec/20...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/42228-security
Ключевые слова: security, kernel, linux
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (59) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, A.Stahl (ok), 10:50, 14/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >В поставляемом в составе ядра Linux драйвере

    Ну да. А когда выходит новость про GNU Hurd все начинают орать "фу-у-у-у, а зачем нам микроядро. И вообще..."
    Эх вы...

     
     
  • 2.3, Аноним (-), 10:53, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Диванный теоретик такой теоретик.
     
     
  • 3.19, Аноним (-), 12:24, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Диванный теоретик такой теоретик.

    По моим наблюдениям, в серебряные пули верят только глупые или наивные люди.

     
  • 2.4, Мяут (ok), 11:13, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Ну в GNU Hurd нет драйвера ozwpan. Нет драйвера - нет проблемы -- так получается :)
     
     
  • 3.30, Sw00p aka Jerom (?), 13:50, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Микро ядро разве крешится если драйвер слетел ? или тока в миниксе дрова в юзерспейсе?
     
  • 2.6, Nicknnn (ok), 11:28, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот как можно было так обосраться?
    Надо было писать: "новость про Hurd все начинают орать...". Потому, как, если бы для него был драйвер ozwpan, то он бы поставлялся в составе дистрибутива GNU. И уязвимость могла в нём случится.  
    И не надо рассказывать, что оно от пользователя работает. ботнету это пофигу.
     
     
  • 3.7, BratSinot (ok), 11:34, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Речь о том, что здесь крах в сетевой подсистеме ядра "кладет" всю систему.
    Лично я довольно часто сталкивался с этим, когда звуковая / сетевая / графическая подсистемы падали и приходилось ребутать всю систему.
     
     
  • 4.9, Nicknnn (ok), 11:47, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Речь о том, что здесь крах в сетевой подсистеме ядра "кладет" всю
    > систему.
    > Лично я довольно часто сталкивался с этим, когда звуковая / сетевая /
    > графическая подсистемы падали и приходилось ребутать всю систему.

    А почему? Потому что железяка зашла в режим, из которого уже не может выбраться без ресета. И при чём здесь ядро? Как в этом случае поможет драйвер работающий из юзерспейс? Даже при полном фризе после краха в intelHD можно зайти по ssh и любоваться в логи.
    И вообще про падения сетевых драйверов и звука явное трололо, не видел такого уже лет 6.

     
     
  • 5.18, Аноним (-), 12:22, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > после краха в intelHD можно зайти по ssh и любоваться в логи.

    С радеонами такая же фигня. Если софт делает с GPU что-то не то, быавет характерная надпись в логе про "Ring N stalled for M milliseconds" и делется попытка перезагрузки. В лог записывается, ядро работает, по ssh система доступна. Драйвер пытается сделать перезагрузку GPU. Но получается не в 100% случаев. По поводу чего амдшникам порой имеют мозги и они уже 2 раза переделывали логику сброса, чтобы она была более эффективной.

    И я не вижу как микроядро поможет в случае когда GPU стоит колом и попытка его сброса не удалась ("Ring N test failed", etc).

     
     
  • 6.32, Nicknnn (ok), 15:03, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/

    > И я не вижу как микроядро поможет в случае когда GPU стоит
    > колом и попытка его сброса не удалась ("Ring N test failed",
    > etc).

    О том и реч. А разные кукаретики свято верят, что им поможет микроядро.

     
     
  • 7.42, Sw00p aka Jerom (?), 18:23, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    ядро отрубит драйвер, а драйвер в свою очередь кинет в лог (Плиз ребут систем), по моему нормальное поведение в случае с микроядром. И ваще зачем микроядро должно волновать аппаратный крах подключаемой железки, не рамка же спалилась.

     
     
  • 8.52, Аноним (-), 11:35, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот в линухе нынче драйвер пишет при этом в лог нечто типа Ring N test faile... большой текст свёрнут, показать
     
  • 5.22, Аноним (-), 12:33, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    У меня проблемы - иногда имею проблемы с HDA intel, лечится это с использовани... большой текст свёрнут, показать
     
     
  • 6.33, Nicknnn (ok), 15:07, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> И вообще про падения сетевых драйверов и звука явное трололо, не видел такого уже лет 6.
    > У меня проблемы:
    >  - иногда имею проблемы с HDA intel, лечится это с использованием
    > rmmod/insmod с последующим alsactl init 0 без перезагрузок
    >  - иногда пропадает сеть на одной из служебных машин на сетевухе
    > Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (rev 10),
    > лечится последовательностью команд последовательностью ifconfig через down-интерфеса,
    > удаление адреса, назначение нового и удаление нового ip; это без перезагрузки

    Мне кажется, что её пора менять.

    >  - еще есть проблема на одной из сетевух via Rhine в
    > виде очень медленной обработке сетевых пакетов (пинг через эту сетевуху в
    > локальной сети дает в среднем 0.3 ms вместо ожидаемых 0.05 ms;
    > лечится заменой сетевухи на другую
    > Во всех случаях грешу на железо, т.к. такое же железо в таком
    > же окружении и системной конфигурации на других системах работает без нарекании.

    Ну вот, даже монолитное ядро может.

     
     
  • 7.38, Аноним (-), 17:26, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Мне кажется, что её пора менять.

    Это не одно железо, они на разных системах. С проблемами HDA Intel и Realtek вполне можно жить, т.к. они дают о себе знать лишь изредка (от нескольких дней/недель до нескольких месяцев). VIA Rhine пришлось заменить из-за больших задержек и низкой пропускной способности.

     
  • 6.53, Аноним (-), 11:40, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Если такой рестарт драйвера прокатывает - ядро стало быть живое А проблемы в ... большой текст свёрнут, показать
     
  • 5.25, КО (?), 12:43, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Как бы разговор про то, что неправильно сформированным пакетом можно засрать память других частей ядра. Из юзерспейса это сделать несколько сложнее.
    Но если девайс басмастер, то примочки в CPU не помогут это точно.
     
  • 4.16, Аноним (-), 12:17, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Лично я довольно часто сталкивался с этим, когда звуковая / сетевая /
    > графическая подсистемы падали и приходилось ребутать всю систему.

    При том как минимум в случае видео - если посмотреть в логи, можно заметить что обычно ядро линуха вполне себе работает, а драйвер просто не смог перезагрузить повисший GPU.

    При этом на машину можно зайти по ssh и прочая. Но радости мало, т.к. GPU висит, его перинициализация не удалась, поэтому графика в ауте. При этом не принципиально, в микроядре драйвер или в монолите - висит ЖЕЛЕЗКА.

     
     
  • 5.24, Аноним (-), 12:37, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > При этом на машину можно зайти по ssh и прочая. Но радости мало, т.к. GPU висит, его перинициализация не удалась, поэтому графика в ауте. При этом не принципиально, в микроядре драйвер или в монолите - висит ЖЕЛЕЗКА.

    Причем иногда ЖЕЛЕЗКА повисает так что даже poweroff/poweron не помогает и система вешается на POST-тесте. В таких случаях нужно полностью обесточить блок питания и зажать POWER, мне помогало.

     
     
  • 6.54, Аноним (-), 11:44, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Причем иногда ЖЕЛЕЗКА повисает так что даже poweroff/poweron не помогает и система
    > вешается на POST-тесте.

    Дело в том что в ряде интерфейсов нынче ресет "софтварный". Скоростные сериальные шины зачастую не имеют выделенного провода под RESET. Поэтому RESET там лишь команда по проводам. Если на той стороне все померло окончательно, настолько что команды более не парсятся - опаньки, просто нажать ресет на системнике может быть недостаточно :)

    > В таких случаях нужно полностью обесточить блок питания
    > и зажать POWER, мне помогало.

    ...а некоторое железо, как то куски чипсета и прочая - получают питание с дежурки. Поэтому особо строптивым железкам может не хватить и даже обычного отключения питания.

     
  • 5.31, Аноним (-), 15:00, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Почему-то на клятой В-нде все работает - драйвер перезапускается, и все. Я сталкивался с таким, что даже игра продолжала работать после перезапуска, хотя чаще, конечно, крашится. Вот хотелось бы в онтопике также чтоб было.
     
     
  • 6.34, Nicknnn (ok), 15:11, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему-то на клятой В-нде все работает - драйвер перезапускается, и все. Я
    > сталкивался с таким, что даже игра продолжала работать после перезапуска, хотя
    > чаще, конечно, крашится. Вот хотелось бы в онтопике также чтоб было.

    Неоднократно наблюдал как мой интегрированный HD3200 падает от перегрева (разогнан, а радиатор маловат). На пару секунд фриз а затем я вновь вижу иксы. В dmesg видно что gpu reset.  Игра сегфолтится но затем запускаешь вновь и продолжаешь. ЧЯДНТ?

     
     
  • 7.49, count0krsk (ok), 10:44, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Не работаешь зря. Скоро примут закон о тунеядстве, и будут год принудительных работ давать таким лоботрясам красноглазым ))) Зак. собрание Санкт-Петербурга, культурной столицы наркопотребителей, уже внесло проект закона в гос. ду*у.
     
  • 7.59, Аноним (-), 11:54, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > запускаешь вновь и продолжаешь. ЧЯДНТ?

    Разгоняешь древний крап вместо того чтобы купить более нормальный GPU, который без разгона в хренадцать раз быстре :)

     
  • 6.39, Аноним (-), 17:28, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему-то на клятой В-нде все работает - драйвер перезапускается, и все. Я сталкивался с таким, что даже игра продолжала работать после перезапуска, хотя чаще, конечно, крашится. Вот хотелось бы в онтопике также чтоб было.

    Выше я писал про случай когда poweroff/poweron не помогает, так вот, в клятой винде это тоже не поможет как и не поможет под android, osx, plan9, ..

     
  • 6.40, Аноним (-), 17:29, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему-то на клятой В-нде все работает - драйвер перезапускается, и все. Я сталкивался с таким, что даже игра продолжала работать после перезапуска, хотя чаще, конечно, крашится. Вот хотелось бы в онтопике также чтоб было.

    В обычных случаях помогает рестарт X или rmmod/insmod fglrx и последующий запуск X.

     
  • 6.55, Аноним (-), 11:47, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему-то на клятой В-нде все работает - драйвер перезапускается, и все.

    Вот это далеко не факт. В смысле, там тоже GPU recovery проходит не в 100% случаев. А остальные драйвера и вовсе обычно теряют девайс до ребута.

    > чаще, конечно, крашится. Вот хотелось бы в онтопике также чтоб было.

    Там так бывает :). Выглядит забавно, как минимум у опенсорсного радеона: картинка паузится, на время до ~10 секунд (дефолтный таймаут ответа от GPU == 10 000 миллисекунд). А потом немного мерцает (в момент сброса GPU) и вскоре снимается с паузы. Если GPU recovery прошел успешно.

     
  • 2.8, Michael Shigorin (ok), 11:37, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну да. А когда выходит новость про GNU Hurd все начинают орать
    > "фу-у-у-у, а зачем нам микроядро. И вообще..."

    1) при чём здесь?
    2) попробуйте отстрелить миниксу какой-нить драйвер tty, поудивляйтесь.

     
     
  • 3.17, Тфьу (?), 12:20, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    пункт 2 у вас идиотский какой-то
     
     
  • 4.35, Nicknnn (ok), 15:14, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > пункт 2 у вас идиотский какой-то

    Как буд-то в tty багов не было?

     
     
  • 5.62, Аноним (-), 16:14, 17/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну бывали, и что? На то и есть RS, чтобы перезапускать упавшие сервисы.
     
  • 2.12, Аноним (-), 12:11, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А когда выходит новость про GNU Hurd все начинают орать

    Ну так пользуйся Hurd и продемонстрируй нам там драйвер ozwpan работающий лучше. Тогда не будем орать.

     

  • 1.5, cmp (ok), 11:13, 14/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А зачем в эзернет-то, чем ip плох
     
     
  • 2.10, anonymous (??), 11:57, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    опеннет все таки полон икспертов
     
  • 2.11, Аноним (-), 12:06, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    У тебя IP поверх TokenRing работает?
     
     
  • 3.15, Аноним (-), 12:13, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > У тебя IP поверх TokenRing работает?

    IP может работать поверх чего угодно, начиная от последовательного порта (SLIP, PPP) и заканчивая почтовыми голубями (RFC1149).

     
  • 2.14, Аноним (-), 12:12, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А зачем в эзернет-то, чем ip плох

    А нафуя там лишний уровень? Чтоб побольше парсить было?

     
     
  • 3.23, anonymous (??), 12:34, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А нафуя там лишний уровень?

    Чтобы можно было отправлять пакеты из другого физического сегмента?

     
     
  • 4.26, _KUL (ok), 12:46, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    2 физических сегмента можно связать 1 логическим канальным - vlan. И даже l2 туннели сейчас умеют делать.
     
     
  • 5.27, anonymous (??), 13:07, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > 2 физических сегмента можно связать 1 логическим канальным - vlan. И даже
    > l2 туннели сейчас умеют делать.

    Но зачем?

     
  • 4.28, userd (ok), 13:24, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Судя по археологическим раскопкам "Ozmo, Inc" никогда не имела цели отправлять данные из другого сегмента. Их область - это PAN (personal area network) - от сантиметров до нескольких метров. Это было что-то вроде wireless USB, только с беспроводной частью поверх Wifi.
     
  • 4.56, Аноним (-), 11:48, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Чтобы можно было отправлять пакеты из другого физического сегмента?

    Странный человек - хочет упростить хакерью ремотный взлом периферии :)

     
  • 2.29, Аноним (-), 13:32, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А зачем нам мягкое, когда есть теплое?

    fixed

     

  • 1.13, Нанобот (ok), 12:12, 14/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    ужас! в staging-модуле обнаружена ошибка! йадро опасносте!
     
     
  • 2.20, Аноним (-), 12:25, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ужас! в staging-модуле обнаружена ошибка! йадро опасносте!

    Хороший стимул подольше помариновать драйвер в staging. Нехай его автор осознает что сетевой драйвер надо писать с осторожностью сапера, разминирующего хитрозагнутую мину. В сети везде кругом "потенциальные противники". И 5 дыр за раз в 1 драйвере, к тому же сетевом - ну, знаете ли?!?

     
     
  • 3.21, Andrey Mitrofanov (?), 12:32, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> ужас! в staging-модуле обнаружена ошибка! йадро опасносте!
    > Хороший стимул подольше помариновать драйвер в staging. Нехай его автор осознает что

    Нет! Зовите http://www.phoronix.com/scan.php?page=news_item&px=MTc1NTY Грэга.

    > сетевой драйвер надо писать с осторожностью сапера, разминирующего хитрозагнутую мину.

     
  • 2.45, Аноним (-), 21:20, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >ужас! в staging-модуле обнаружена ошибка! йадро опасносте!

    Ну когда была точно такая же ситуация с Releng branch FreeBSD - ляпиксоидов от истерии это не остановило, почему ви теперь таки в удивлении?!?! :)

     

  • 1.36, Kodir (ok), 15:21, 14/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ничего "специального" в этом драйвере нет, а ошибка - типичное сипиписное гуано, написанное на чёрте каком опасном языке.
    Юзайте Ди, да пребудут с вами границы массивов! :)
     
     
  • 2.44, Crazy Alex (??), 20:50, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    D никто и никогда не преднпзначал для писания ядра. Годится ли он для этого -невеломо. И, кстати, в реоизном билде все проверки границ вырубаются - как и везде, где не пофигу быстродействие
     
     
  • 3.64, Аноним (-), 14:15, 18/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > преднпзначал
    > невеломо.
    > реоизном

    Ты что, с тетриса сюда писал? :)

     
  • 2.46, Аноним (-), 21:22, 14/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Юзайте Ди,

    ди - для лузеров типа тебя. На нём за столько лет _ничего_ не написано. Звоночек.

     
  • 2.47, Аноним (-), 02:16, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Поддерживаю! Надо переписать ядро на Java! :D
     
     
  • 3.48, Аноним (-), 07:50, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    тогда уж на хаскеле или АДА ;)
    или Фортране.
    а для осиливших(да, есть пара портов, увы) можно и покруче чегонить изобрести.
    вроде порта ОС-и на Forth.
    или существующих у нас и шведов соотв - форков UX на модула-2 и эрланге.
     
  • 3.51, count0krsk (ok), 10:47, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Сначала системд перепишите, а потом на святое замахивайтесь ;-)
    А ещё лучше - на перл ))
     
  • 2.57, Аноним (-), 11:49, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Юзайте Ди, да пребудут с вами границы массивов! :)

    Сразу после того как ты на этом напишешь ядра операционок.

     

  • 1.37, Аноним (37), 15:48, 14/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >третья проблема вызвана условиями при которых выполняется деление на ноль
    >выполняется деление на ноль
    >деление на ноль

    В мире Linux возможно невозможное! :)

     
     
  • 2.50, count0krsk (ok), 10:46, 15/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Я знаю точно невозможное - возможно
    Делить на ноль, снести винду неосторожно )))
     

  • 1.61, Аноним (-), 10:53, 17/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Итак, последние 20-30 лет мы видим тенденцию на работе с памятью. А именно то что в целом в C/C++ есть проблема в том, что никто или не что не следит за границами памяти. Помоему назревает новый стандарт языка D с решением проблем (p.s. самозванцев из Digital Mars кстати непонятно на каком основании заняли букву D).
     
     
  • 2.63, Аноним (-), 14:13, 18/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А заодно мы заметим что проверка каких-нибудь границ в тугом цикле - гробит скорость работы. Раза в три. "Жаба не тормозит!!!111"
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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