The OpenNET Project / Index page

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

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

07.03.2022 19:40

В ядре Linux выявлена уязвимость (CVE-2022-0847), позволяющая перезаписать содержимое страничного кэша для любых файлов, в том числе находящихся в режиме только для чтения, открытых с флагом O_RDONLY или размещённых в файловых системах, примонтированных в режиме только для чтения. С практической стороны, уязвимость может применяться для подстановки кода в произвольные процессы или искажения данных в открываемых файлах. Например, можно изменить содержимое файла authorized_keys для процесса sshd. Для тестирования доступен прототип эксплоита.

Проблеме присвоено кодовое имя Dirty Pipe, по аналогии с выявленной в 2016 году критической уязвимостью Dirty COW. Отмечается, что по уровню опасности Dirty Pipe находится на одном уровне с Dirty COW, но значительно проще в эксплутации. Уязвимость была выявлена в ходе разбора жалоб о периодическом повреждении загружаемых по сети файлов в системе, загружающей сжатые архивы с log-сервера (37 повреждений за 3 месяца на нагруженной системе), при подготовке которых использовалась операция splice() и неименнованные каналы.

Уязвимость проявляется начиная с ядра Linux 5.8, выпущенного в августе 2020 года, т.е. присутствует в Debian 11, но не затрагивает базовое ядро в Ubuntu 20.04 LTS. Ядра RHEL 8.x и openSUSE/SUSE 15 изначально основаны на старых ветках, но не исключено, что вызывавшее проблему изменение было бэкпоритировано в них (точных данных пока нет). Проследить за публикацией обновлений пакетов в дистрибутивах можно на данных страницах: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Исправление уязвимости предложено в выпусках 5.16.11, 5.15.25 и 5.10.102. Исправление также включено в ядро, используемое в платформе Android.

Уязвимость вызвана отсутствием инициализации значения "buf->flags" в коде функций copy_page_to_iter_pipe() и push_pipe(), при том, что память при выделении структуры не очищается и при определённых манипуляциях с неименованными каналами в "buf->flags" может оказаться значение от другой операции. Используя данную особенность непривилегированный локальный пользователь может добиться появления во флаге значения PIPE_BUF_FLAG_CAN_MERGE, которое позволяет организовать перезапись данных в страничном кэше через простую запись новых данных в специально подготовленный неименованный канал (pipe).

Для атаки целевой файл должен быть доступен на чтение, при этом так как при записи в pipe не проверяются права доступа замена в страничном кэше может быть произведена в том числе и для файлов, находящихся в разделах, примонтированных только для чтения (например, для файлов c CD-ROM). После замены информации в страничном кэше процесс при чтении данных из файла получит не фактические, а подменённые данные.

Эксплуатация сводится к созданию неименованного канала и наполнению его произвольными данными для того, чтобы добиться выставления флага PIPE_BUF_FLAG_CAN_MERGE во всех связанных с ним кольцевых структурах. Далее данные читаются из канала, но флаг остаётся выставленных во всех экземплярах структуры pipe_buffer в кольцевых структурах pipe_inode_info. Затем выполняется вызов splice() для чтения данных из целевого файла в неименованный канал, начиная с требуемого смещения. При записи данных в этот неименованный канал из-за выставленного флага PIPE_BUF_FLAG_CAN_MERGE данные в страничном кэше будут перезаписаны, вместо создания нового экземпляра структуры pipe_buffer.

Дополнение: Опубликованы готовые эксплоиты для выхода из контейнеров в Kubernetes и других систем изоляции на базе runc runtime.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: В ядре Linux выявлен новый вариант уязвимости Dirty COW
  3. OpenNews: Критическая уязвимость в ядре Linux, уже эксплуатируемая злоумышленниками
  4. OpenNews: Раскрыта техника эксплуатации уязвимости в tty-подсистеме ядра Linux
  5. OpenNews: Уязвимость в подсистеме eBPF, позволяющая выполнить код на уровне ядра Linux
  6. OpenNews: Критическая уязвимость в bash, которая может привести к удалённому запуску команд
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/56818-kernel
Ключевые слова: kernel, linux
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (88) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 19:52, 07/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –69 +/
    Сколько лет вы ещё будете жрать эти уязвимости! Когда уже будет система на НОРМАЛЬНОМ языке со сборщиком мусора
     
     
  • 2.2, a. (?), 19:58, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • +25 +/
    Когда ты её напишешь.
     
     
  • 3.57, Аноним (-), 10:50, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Он апологет Раста.
     
     
  • 4.69, Аноним (69), 12:33, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Раз со сборщиком мусора, то не Раста.
     
  • 2.3, AKTEON (?), 19:59, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Воот в 1996 году дедушку Вирта не послушали, Zonon развивать не стали, теперь мучаются ...
     
     
  • 3.58, Аноним (-), 10:52, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вирт к Zonon не имеет никакого отношения, он Oberon попиливает.
     
  • 2.5, Аноним (5), 20:18, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    На РНР, да?
     
     
  • 3.38, Аноним (38), 00:52, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я бы посмотрел на ОС на PHP. Вот просто ради смеха, хотя бы!
     
     
  • 4.45, Аноним (45), 05:26, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Она запускается и умирает :)
     
  • 4.101, warus (??), 22:02, 09/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я бы посмотрел на ОС на PHP. Вот просто ради смеха, хотя
    > бы!

    я в шоке когда увидел что сервер майкрафт-бедрок на php сделали, сейчас php это не php3

     
  • 2.8, Кир (?), 20:44, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • +6 +/
    И как сборщик мусора помог бы в данном случае? Ну-ка, просвети?
     
     
  • 3.28, Аноним (28), 23:20, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Не было бы ручного выделения памяти и ошибки связанной с наличием старого значения в ней
     
     
  • 4.51, Кир (?), 09:01, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Сборщик мусора не имеет отношения к инициализации памяти, садись, два.
     
  • 3.109, Neon (??), 00:50, 16/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В данном случае на нормальном  языке с автоинициализацией переменных первоначальными значениями. Но это не наш метод. Только хардкор и мусор в неинициализированных переменных))). Даешь садомазо)))
     
  • 2.11, freecoder (ok), 21:00, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • +6 +/
    В Rust нет сборщика мусора.
     
     
  • 3.27, Аноним (27), 22:53, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Не совсем, в расте все же есть "сборщики мусора" все возможные Box Rc Arc в зависимости от ситуации. Возможно ли писать без них, ну вообще интересный вопрос.
     
     
  • 4.72, asdasd (?), 12:45, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это все не GC ни разу, контейнеры.
    Box просто на куче выделяет, а не на стеке и все. Rc / Arc просто со счетчиком ссылок, все равно что сказать что в C++ есть GC (shared / unique_ptr).
     
  • 3.40, Аноним (40), 01:58, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Так и на раст ничего нет. Работающего и версии дальше чем пре пре пре пре пре альфа
     
  • 3.59, Брат Анон (ok), 11:04, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вообще-то есть. Выглядит, правда, иначе.
     
  • 3.85, Аноним (85), 17:16, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И рантайма нет, проверяющего границы массивов и паникующего
     
     
  • 4.91, Аноним (-), 22:48, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Покажи, где там рантайм или GC https www opennet ru openforum vsluhforumID3... большой текст свёрнут, показать
     
  • 3.100, Аноним (100), 20:02, 09/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Программисты на расте - сборщики мусорных пакетов.
     
  • 2.20, Аноним (20), 21:15, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тебе любой фанатик объяснит, что нормальных языков со сборщиком мусора не бывает.
     
  • 2.37, Dzen Python (ok), 00:24, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Учитывая качество коммунити и качество самого твоего *подразумеваемого* языка - уж лучше сишные уязвимости, чем токсичный полный стек разработки с токсичным коммунити *слишком неявно названного* языка.
     
     
  • 3.70, Аноним (69), 12:34, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Так придите все разом, не токсики, и коммьюнити будет другими, преобразится
     
     
  • 4.77, Dzen Python (ok), 14:54, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Приходили уже. Токсичные старожили цеплялись за любую кузуистику, чтобы изгнать здравомыслящих людей обратно.
     
     
  • 5.92, Аноним (92), 22:54, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сишное комьюнити тоже весьма токсичное. А какой язык *подразумевается*? Пишут же, что раст без сборки мусора ...
     
     
  • 6.105, Аноним (-), 12:25, 10/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Сишное комьюнити тоже весьма токсичное.

    Вы все врети! И вообще, "это другое!".

     
  • 4.93, Аноним (92), 22:55, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Прийти чтобы что?
     
  • 2.98, pavlinux (ok), 16:37, 09/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Сколько лет вы ещё будете жрать эти уязвимости!

    когда анонимные дoл6oящepы не будут лезть куда не надо?

    CONFIG_PAGE_POISONING_ZERO
    CONFIG_INIT_ON_ALLOC_DEFAULT_ON
    CONFIG_INIT_ON_FREE_DEFAULT_ON
    CONFIG_GCC_PLUGIN_STACKLEAK


     
     
  • 3.110, Neon (??), 00:51, 16/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А когда долбоящеры будут нормальные значения по дефолту прописывать в конфигурациях ?
     
     
  • 4.114, pavlinux (ok), 13:08, 19/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > А когда долбоящеры будут

    Вам не разрешали думать

     
  • 4.115, pavlinux (ok), 13:10, 19/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > А когда долбоящеры будут

    Может тебе сразу денег выдать, что можешь заработать до смерти?

     
  • 2.107, anonymous (??), 16:44, 11/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    РРРяяя сборщик мусора!!!1
    На самом деле достаточен язык с принудительным вызовом конструктора, т.е. в данном случае C++ хватило бы.
     
  • 2.108, Neon (??), 00:48, 16/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да, уж автоинициализация хотя бы определенными значениями - не наш метод.))) Только мусор, только хардкор)))
     

  • 1.12, Аноним (12), 21:01, 07/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Вот если бы линукс был бы микроядром?
     
     
  • 2.16, Аноним (16), 21:06, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Его бы так и не написали как Hurd
     
     
  • 3.41, Заноним (?), 02:23, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Hurd написали и оно даже работает.
     
     
  • 4.44, Аноним (44), 03:43, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Где?
     
     
  • 5.73, Стар (?), 12:49, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    debian hurd
    https://cdimage.debian.org/cdimage/ports/latest/hurd-i386/
     
     
  • 6.74, Аноним (44), 14:29, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вопрос был — ГДЕ он работает.
     
  • 2.24, Аноним (24), 21:43, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    …на плюсах!
     
  • 2.32, Аноним (32), 00:13, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше гибридом. И быстродействие, где важно, и можно менее критичные части в юзерспейс.
     
  • 2.35, Dzen Python (ok), 00:21, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То он бы не представлял из себя интерес ни для кого, кроме группок фанатиков и усчоных-в-воде-мочёных.
     

  • 1.14, Аноним (16), 21:05, 07/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хаскель же.
     
     
  • 2.60, Аноним (92), 11:06, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Почему сразу раст не предлагаешь?
     
     
  • 3.84, Аноним (85), 17:14, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В хаскеле есть переменные?
     
     
  • 4.94, Аноним (92), 22:57, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В расте нет переменных?
     
     
  • 5.102, Аноним (102), 02:45, 10/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Есть раст?
     
     
  • 6.104, anonimous (?), 11:21, 10/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А если найду?
     

  • 1.17, Аноним (17), 21:06, 07/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Самый надёжный ReadOnly - аппаратный
     
     
  • 2.19, Аноним (20), 21:14, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Покупай write once hdd, да такие бывает и радуйся жизни.
     
  • 2.26, Аноним (26), 22:17, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Причем здесь аппаратный readonly, если модификации подвергаются данные в страничном кеше? Там написано, что возникают и при чтении с cdrom и данные на жестких дисках, скорее всего, не модифицируются.
     
     
  • 3.31, Аноним (31), 23:57, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если пользователь с правами на запись решит прочитать и потом записать, видимо, вполне себе модифицируются. Ну и вообще ты фактически можешь вмешаться в любой процесс.
     
     
  • 4.50, EuPhobos (ok), 08:06, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что за бред? Если пользователь с правами на запись, зачем ему уязвимость?! Он и так может модифицировать файл и записать.
    Перечитай новость два.. нет.. три раза для понимания.
     
     
  • 5.65, Аноним (65), 11:21, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Имеется в виду случай, когда есть легитимный процесс, который читает файл и пишет его обратно. Если в процессе чтения вмешаться, то и запишутся некорректные данные.
     
     
  • 6.71, EuPhobos (ok), 12:38, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Имеется в виду случай, когда есть легитимный процесс, который читает файл и
    > пишет его обратно. Если в процессе чтения вмешаться, то и запишутся
    > некорректные данные.

    Ну об этом и речь. Так чем же поможет аппаратный RO ?

     
  • 2.83, Аноним (85), 16:55, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен, 'HALT' на процессоре
     

  • 1.21, Аноним (21), 21:20, 07/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +19 +/
    Вопрос: У Миши было 5 яблок.
    Два яблока он отдал Маше.
    Сколько стало у Маши?
    Ответ: Неизвестно. Нужно
    инициализировать переменные.
     
     
  • 2.23, ыы (?), 21:26, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в нормальных языках они инициализируются при первом применении.
     
     
  • 3.25, AKTEON (?), 21:54, 07/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В самых лучших языках - ключами компиллятора ,хе-хе
     
     
  • 4.36, Dzen Python (ok), 00:22, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пффф, в самых лучших - автоматом, при сборке: зануляется то, что не задано явно.
     
     
  • 5.56, AKTEON (?), 10:49, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это неправильно. Для отладки нужно ставить signaling NAN
     
     
  • 6.78, Dzen Python (ok), 14:55, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пффф. Собирать отладку с debug-профилем, а релиз - с release?
     
  • 4.111, Neon (??), 00:53, 16/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Которые не включены по умолчанию. Хе...хе)))
     
  • 2.34, Аноним (32), 00:19, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Сколько апельсинов стало у Маши?" Так более похоже на современные учебники.
     
     
  • 3.39, OO (?), 01:18, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    сколько дынек стало у маши если она была мальчиком до передачи яблок?
     
  • 3.62, Первая буква (?), 11:12, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И правильно делают, хоть роботов от людей преподаватель будет отличать
     
  • 2.43, Аноним (-), 03:08, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +9 +/
    > Вопрос: У Миши было 5 яблок.
    > Два яблока он отдал Маше.
    > Сколько стало у Маши?

    Так как у Маши уже была большая куча яблок на подоконнике, то попытка пристроить сверху новые, привела к переполнению кучи. Куча рассыпалась и яблоки выпали в окно. У Маши теперь 0 яблок, зато под окном куча яблочного пюре и какой-то ругающийся дядька, которому яблоки проэксплуатировали прямо в уязвимую лысину.

     
     
  • 3.49, Аноним (49), 07:47, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Это Исаак Ньютон.
     
     
  • 4.80, Аноним (85), 14:58, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >> яблоки проэксплуатировали прямо в уязвимую лысину.
    > Это Исаак Ньютон.

    Значит уязвимости - это хорошо?

     
  • 2.54, Аноним (44), 10:44, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ответ: уязвимость тут в русском языке, на котором сформулирована задача.
     
     
  • 3.112, Neon (??), 00:54, 16/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Уязвимость здесь не в русском языке, на котором сформулирована задача. А в голове сформулировавшего задачу. Такой бред можно и на английском сформулировать
     

  • 1.22, Consta (ok), 21:21, 07/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Никто не копал, ключ fs.protected_fifos в 1 или 2 не поможет на время?
     
     
  • 2.103, n00by (ok), 10:42, 10/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А ты, кстати, в Rosalab кем был? Что ты там сделал помимо организации с Потаповым т.н. НКО "Российское общество СПО", которое занималось попрошайничеством, а потом продавало собранные по форумам патчики через ООО "НТЦ ИТ Роса"? Почему твоей и всех твоих "коллег" квалификации не хватает, что бы самостоятельно найти ответ на данный вопрос? Почему 8+ лет "импортозамещения" кто-то способствовал трате бюджетных средств вот на таких как ты шарлатанов?
     

  • 1.33, Аноним (33), 00:15, 08/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Да хоть с винды загрузитесь и читайте другие разделы - делов-то. Надо другую систему делать, чтобы ФС не могли прочитать.
     
  • 1.42, Аноним (42), 02:33, 08/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Уязвимость вызвана отсутствием инициализации значения "buf->flags" в коде

    Во многих языках программирования компилятор не даст использовать переменные до инициализации или обязательно установит начальные значения, например в 95 года java

    А для сишечки советуют заполнить структуру нулями, до любого использования

     
     
  • 2.82, Аноним (82), 15:54, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    но дыр в продуктах на джаве, почему-то, больше чем в решете
     
     
  • 3.113, Neon (??), 00:56, 16/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Рукожопы найдут всегда где накосячить. Особенно, если язык позволяет себе отстреливать всё, что угодно
     

  • 1.46, Атон (?), 05:53, 08/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >> Уязвимость проявляется начиная с ядра Linux 5.8,
    >> Уязвимость вызвана отсутствием инициализации значения "buf->flags" в коде

    Как так получилось что, раньше инициализация была, а теперь нет?

     
     
  • 2.47, Аноним (47), 07:12, 08/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Инициализации не было и раньше, но в ядре 5.8 появилась функция pipe_buf_can_merge для слияния буферов, что сделало возможным эксплуатацию уязвимости.
     

  • 1.52, Аноним12345 (?), 09:36, 08/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Совершенно безумная дыра
     
  • 1.53, user90 (?), 10:18, 08/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    ШЕРЕТОадыныдын Ой, простити)
    На самом деле впечатляет: таки найдено, проанализировано и будет пофикшено!
     
  • 1.55, Аноним (-), 10:47, 08/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Такую закладку спалили, блин
     
  • 1.79, Аноним (79), 14:58, 08/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Уязвимость проявляется начиная с ядра Linux 5.8, выпущенного в августе 2020 года

    Обновляйтесь регулярно! Иначе пропустите грабли!!!

     
  • 1.89, erthink (ok), 20:28, 08/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В unified page/buffer cache есть еще один баг, ну очень-очень похоже что так.

    https://github.com/erthink/libmdbx/issues/269

     
     
  • 2.96, Имяяя (?), 12:09, 09/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    У персонажа, похоже, ABA баг. В механизме из описания нет логики блокировки страниц с данными из которых всё ещё может происходить чтение. Если читатель сильно тормозит, то пишущий процесс может несколько раз перезаписать данные.
     
     
  • 3.97, erthink (ok), 12:24, 09/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > У персонажа, похоже, ABA баг. В механизме из описания нет логики блокировки
    > страниц с данными из которых всё ещё может происходить чтение. Если
    > читатель сильно тормозит, то пишущий процесс может несколько раз перезаписать данные.

    Вы либо мало знаете о работе libmdbx/LMDB, либо чего-то не поняли.

    В частности, страницы относящиеся к уже зафиксированным/закоммиченным MVCC снимкам не изменяются, пока существует или может появиться использующий их читатель.

    Вся же схема многократно была подвергнута анализу и верификации многими исследователями.
    https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Database#Technical_revie

     

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



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

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