Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Осенью 2016 года в ядре Linux была выявлена и исправлена уязвимость CVE-2016-5195, получившая имя Dirty COW, существовала в коде начиная с версии 2.6.22, то есть с 2007 года. Проблема была связана с тем, как подсистема памяти ядра работает с механизмом copy-on-write (COW). Эксплуатируя баг можно спровоцировать так называемое состояние гонки. В итоге неавторизованный локальный пользователь получает доступ к memory mappings с правом записи, тогда как в нормальной ситуации доступ должен ограничивать только чтением (read-only).
Кроме того, Dirty COW представляла проблему для устройств, работающих на базе Android. К примеру, Dirty COW и ее производные можно использовать против Android для получения root-доступа к системе. Также от Dirty COW не спасала даже контейнерная виртуализация.
Теперь, спустя год после обнаружения уязвимости, выяснилось, что тогда проблему Dirty COW устранили не до конца. К такому выводу пришли эксперты компании Bindecy, уже опубликовавшие все подробности проведенного исследования в своем блоге.
Так, оригинальная проблема касалась функции get_user_pages, которая используется для получения реальных физических страниц, стоящих за виртуальными адресами. По сути, уязвимость позволяла осуществлять запись для страниц с привилегиями read-only. Но, по словам исследователей, патч лишь «научил» get_user_pages запоминать тот факт, что цикл COW уже был пройден.
«С выходом исправления для проблемы Dirty COW (CVE-2016-5195) работу функции can_follow_write_pmd() изменили таким образом, чтобы она принимала во внимание новый флаг FOLL_COW (8310d48b125d ‘mm/huge_memory.c: respect FOLL_FORCE/FOLL_COW for thp’)», — пишут специалисты.
Исследователям удалось обнаружить проблему, связанную с работой pmd_mkdirty() и touch_pmd(). Вследствие бага get_user_pages может обратиться к touch_pmd() и добиться подмены содержимого PMD (Page Medium Directory), сделав его «грязным». Данный сценарий нарушит новую логику работы can_follow_write_pmd(): PMD станет «грязным», не выполнив цикл COW. В итоге запись для больших страниц памяти, промаркированных read-only, по-прежнему будет возможна.
Специалисты опубликовали proof-of-concept эксплоит на GitHub и присвоили новой проблеме идентификатор CVE-2017–1000405. Для ядра Linux уже был подготовлен патч, и все крупные дистрибутивы должны обновиться в ближайшее время.
|
|