В Linux исправили уязвимость 9-летней давности | автор: admin | 21 октября 2016
Категория: Security
Причина уязвимости — race condition («состояние гонки») при обработке подсистемой управления памяти copy-on-write операций для частных маппингов памяти, доступной только для чтения. Непривилегированный пользователь может воспользоваться этим для повышения своих привилегий и получения возможности записи в память, размеченную только для чтения.
Патч, устраняющий уязвимость, просуществовавшую в ядре девять лет (начиная с linux 2.6.22), уже представлен.
Некоторые эксперты назвали проблему одной из наиболее опасных уязвимостей в ядре, для эксплуатации которой есть надёжный рабочий прототип эксплоита на github, не зависящий от особенностей окружения, что упрощает атаку.
-----
Линус Торвальдс пишет: это древний баг, который я плох исправил одиннадцать лет назад в коммите 4ceb5db9757a ("Fix get_user_pages() race for write access"), но это исправление тогда отменили из-за проблем с s390 в коммите f33ea7f404e5 ("fix get_user_pages bug").
Ситуацию на s390 давно исправили, и теперь мы можем исправить это путём проверки pte_dirty() bit properly . Грязный бит в s390 был реализован в abf09bed3cce ("s390/mm: implement software dirty bits") , которые сделали его в v3.9. Более ранние ядра будут должны смотреть на саму страницу состояния.
Кроме этого, виртуальные машини становится все более масштабируемыми, и что используется чисто
теоретическая гонка тогда становится легче для запуска.
Чтобы исправить это, мы вводим новый внутренний флаг FOLL_COW, чтобы отметить "yes,
мы уже сделали FOLL_COW" , а не играть гоночные игры с FOLL_WRITE , что
очень фундаментален, а затем использовать грязный флаг PTE, чтобы подтвердить, что
флаг FOLL_COW остается в силе.
https://lkml.org/lkml/2016/10/19/860
https://www.linux.org.ru/news/security/12959067
Прочитано 91191 раз и оставлено 2 комментариев.
Причина уязвимости — race condition («состояние гонки») при обработке подсистемой управления памяти copy-on-write операций для частных маппингов памяти, доступной только для чтения. Непривилегированный пользователь может воспользоваться этим для повышения своих привилегий и получения возможности записи в память, размеченную только для чтения.
Патч, устраняющий уязвимость, просуществовавшую в ядре девять лет (начиная с linux 2.6.22), уже представлен.
Некоторые эксперты назвали проблему одной из наиболее опасных уязвимостей в ядре, для эксплуатации которой есть надёжный рабочий прототип эксплоита на github, не зависящий от особенностей окружения, что упрощает атаку.
-----
Линус Торвальдс пишет: это древний баг, который я плох исправил одиннадцать лет назад в коммите 4ceb5db9757a ("Fix get_user_pages() race for write access"), но это исправление тогда отменили из-за проблем с s390 в коммите f33ea7f404e5 ("fix get_user_pages bug").
Ситуацию на s390 давно исправили, и теперь мы можем исправить это путём проверки pte_dirty() bit properly . Грязный бит в s390 был реализован в abf09bed3cce ("s390/mm: implement software dirty bits") , которые сделали его в v3.9. Более ранние ядра будут должны смотреть на саму страницу состояния.
Кроме этого, виртуальные машини становится все более масштабируемыми, и что используется чисто
теоретическая гонка тогда становится легче для запуска.
Чтобы исправить это, мы вводим новый внутренний флаг FOLL_COW, чтобы отметить "yes,
мы уже сделали FOLL_COW" , а не играть гоночные игры с FOLL_WRITE , что
очень фундаментален, а затем использовать грязный флаг PTE, чтобы подтвердить, что
флаг FOLL_COW остается в силе.
https://lkml.org/lkml/2016/10/19/860
https://www.linux.org.ru/news/security/12959067
ВНИМАНИЕ !
Возможно что-то уже неактуально. Обращайте внимание на даты !
Эта статья опубликована 21 октября 2016-го года !
Прочитано 91191 раз и оставлено 2 комментариев.
#1.watersoda