Обнаружена уязвимость Linux «Dirty Pipe»
Макс Келлерманн пояснил, что уязвимость затрагивает Linux Kernel 5.8 и более поздние версии.
В понедельник исследователь кибербезопасности опубликовал подробности уязвимости Linux, которая позволяет злоумышленнику перезаписывать данные в произвольных файлах, доступных только для чтения.
Уязвимость — CVE-2022-0847 — была обнаружена Максом Келлерманном в апреле 2021 года, но ему потребовалось еще несколько месяцев, чтобы понять, что на самом деле происходит.
Чтобы воспользоваться этой уязвимостью, злоумышленнику необходимо иметь разрешения на чтение, смещение не должно находиться на границе страницы, запись не может пересекать границу страницы и размер файла не может быть изменен.
«Чтобы воспользоваться этой уязвимостью, вам необходимо: Создать канал, заполнить его произвольными данными (чтобы установить флаг PIPE_BUF_FLAG_CAN_MERGE во всех записях кольца), осушить канал (оставив флаг установленным во всех экземплярах struct Pipe_buffer в кольце struct Pipe_inode_info). ), соединить данные из целевого файла (открытого с помощью O_RDONLY) в канал непосредственно перед целевым смещением [и] записать в канал произвольные данные», — объяснил он.
«Эти данные перезапишут страницу кэшированного файла вместо создания новой анонимной структуры Pipe_buffer, поскольку установлен PIPE_BUF_FLAG_CAN_MERGE. Чтобы сделать эту уязвимость более интересной, она не только работает без разрешений на запись, но также работает с неизменяемыми файлами, на снимках btrfs, доступных только для чтения. и при монтировании только для чтения (включая монтирование CD-ROM). Это связано с тем, что страничный кеш всегда доступен для записи (ядру), а запись в канал никогда не проверяет никаких разрешений».
Он также поделился своим собственным экспериментом для проверки концепции.
Отчет об ошибке, эксплойт и исправление были отправлены Келлерманном в команду безопасности ядра Linux 20 февраля. Ошибка была воспроизведена на Google Pixel 6, а отчет об ошибке был отправлен в группу безопасности Android.
Linux выпустила исправления (5.16.11, 5.15.25, 5.10.102) 23 февраля, а Google объединила исправление ошибки Келлермана с ядром Android 24 февраля.
Келлерманн и другие эксперты сравнили эту уязвимость с CVE-2016-5195 «Dirty Cow», но заявили, что ее еще проще эксплуатировать.
PoC Dirty Pipe (https://t.co/ql5Y8pWDBj) работает прекрасно. 🤑 pic.twitter.com/OrRYJE5skC
Майк Паркин из Vulcan Cyber заявил, что любой эксплойт, предоставляющий корневой доступ к системе Linux, является проблематичным.
«Злоумышленник, получивший root-права, получает полный контроль над целевой системой и может использовать этот контроль для доступа к другим системам. Смягчающим фактором этой уязвимости является то, что для нее требуется локальный доступ, что немного снижает риск», — сказал Паркин.
«Повышение привилегий до root (семейство POSIX) или администратора (Windows) часто является первым приоритетом злоумышленника, когда он получает доступ к системе, поскольку это дает ему полный контроль над целью и может помочь ему распространить свое влияние на других жертв. не менялось уже целую вечность и вряд ли изменится в обозримом будущем».
Света Харе, евангелист по кибербезопасности в Delinea, отметила, что несколько уязвимостей ядра Windows, DNS-сервера RCE и Adobe с высоким рейтингом серьезности уже стали новостью в этом году, поскольку они позволяют злоумышленникам получить повышенные локальные системные или административные привилегии.
По словам Харе, ошибки ОС и уязвимости на уровне приложений, подобные этим, могут позволить злоумышленникам повысить привилегии, перемещаться внутри сети, выполнять произвольный код и полностью захватывать устройства.