LINUX.ORG.RU

В Linux раскрыта новая LPE-уязвимость Fragnesia, позволяющая локальному пользователю получить root

 fragnesia, ,


1

3

В ядре Linux раскрыта очередная уязвимость локального повышения привилегий, получившая название Fragnesia и идентификатор CVE-2026-46300. Проблема относится к тому же классу атак на page cache, что и недавно обсуждавшиеся Copy Fail и Dirty Frag, но не является повторной публикацией старой ошибки: речь идёт об отдельном дефекте в коде XFRM ESP-in-TCP.

Уязвимость обнаружил исследователь William Bowling из команды V12 Security. По данным опубликованного описания, Fragnesia позволяет непривилегированному локальному пользователю изменять содержимое файлов, доступных только для чтения, в памяти page cache и за счёт этого выполнять код с правами root. В отличие от многих старых LPE-эксплойтов, атака не требует гонки и описывается исследователями как детерминированная.

Технически проблема связана с тем, что при объединении сетевых буферов ядро могло потерять признак того, что фрагмент данных является «общим» и связан с внешней страницей памяти, в том числе с page cache. В предложенном патче это описано как ошибка в skb_try_coalesce(): при переносе paged fragments из одного sk_buff в другой не сохранялся флаг SKBFL_SHARED_FRAG. В результате более поздний код ESP мог ошибочно считать буфер безопасным для изменения.

Практический эффект заключается в том, что данные, ранее помещённые в TCP-очередь из файла, после переключения сокета в режим espintcp могли обрабатываться ядром как ESP-шифротекст. При расшифровке AES-GCM байты изменялись непосредственно в странице page cache, связанной с файлом. Это не меняет файл на диске, но меняет его представление в памяти до вытеснения страницы из кэша.

В опубликованной демонстрации атаки в качестве цели использовался /usr/bin/su: эксплойт модифицировал первые байты бинарного файла в page cache и затем запускал изменённую в памяти копию, получая shell с правами root. Исходный файл на диске при этом оставался неизменным, что делает проблему особенно неприятной для диагностики: следы эксплуатации могут исчезнуть после очистки page cache или перезагрузки.

Fragnesia появилась менее чем через неделю после Dirty Frag. В V12 подчёркивают, что это отдельная ошибка в той же поверхности атаки — ESP/XFRM, — а не переименование уже исправленной уязвимости. Phoronix также отмечает, что на момент публикации был доступен proof-of-concept, а исправление представляло собой небольшой патч к net/core/skbuff.c, ещё не сразу попавший в основные ветки ядра.

Canonical присвоила CVE-2026-46300 высокий приоритет для Ubuntu, указав причину как «trivial local privilege escalation». На странице Ubuntu Security для затронутых ядер на момент обновления 13 мая значился статус «Needs evaluation», а в примечании отдельно сказано, что проблема также находится в ESP-модуле ядра и может временно смягчаться тем же способом, что и Dirty Frag.

Debian Security Tracker на момент проверки помечал уязвимыми ядра в ветках bullseye, bookworm, trixie, forky и sid; для пакета linux в unstable фиксированная версия ещё не была указана.

Временная мера защиты остаётся такой же, как для Dirty Frag: отключить загрузку модулей esp4, esp6 и rxrpc, если они не нужны системе. Это может нарушить работу IPsec-туннелей на узлах, где используются kernel ESP, strongSwan, Libreswan или похожие конфигурации, поэтому на VPN-шлюзах такую меру нужно применять только после оценки последствий.

Пример временного смягчения для администраторов:

sudo sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf"
sudo rmmod esp4 esp6 rxrpc 2>/dev/null || true

Если есть подозрение, что система уже могла быть атакована, одной блокировки модулей недостаточно: поскольку публичная демонстрация меняет исполняемый файл именно в page cache, администраторы рекомендуют очистить кэш страниц или перезагрузить систему после применения мер защиты. CloudLinux прямо указывает, что после эксплуатации /usr/bin/su может оставаться изменённым в памяти до вытеснения соответствующих страниц.

Для удаления временного правила после установки исправленного ядра можно убрать созданный файл:

sudo rm /etc/modprobe.d/dirtyfrag.conf

Главная рекомендация остаётся стандартной: установить исправленное ядро от своего дистрибутива и перезагрузить систему. До обновления наибольший риск несут многопользовательские серверы, CI-раннеры, shared hosting, контейнерные build-фермы и любые машины, где непривилегированные или частично доверенные пользователи могут выполнять локальный код.

>>> Источник

★★★★★

Проверено: cetjs2 ()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от dynamic_cast

У меня вот уже попробовали - неделю майнер не могу с серванта выкурить.

windows10 ★★★★★
()

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

askh ★★★★
()
Ответ на: комментарий от askh

как в Debian сломали генерацию случайных чисел, смотрел разбор:

  1. чтобы исправить Warning при сборке, переменную инициализировали константой
  2. но до этого оказывается, она получала начальное значение просто глядя в никуда
  3. все последующие числа стали предсказуемы

в общем где гарантия что такой вот ерунды не принесут вместе с ИИ, да вроде никаких

unclestephen ★★★★★
() автор топика
Ответ на: комментарий от unclestephen

Я про анализ кода при помощи нейросетей, а не про написание. Чтобы окончательное решение по поводу ошибки принимал человек.

Ну и нестандартные идеи в коде лучше комментировать, тем более если они варнинги вызывают.

askh ★★★★
()
Ответ на: комментарий от etwrq

Не поможет, эксплойты пишут в файл и сразу эксплуатируют его, а у тебя раз в 60 сек только сброс. А вот while true; do ....; done может быть снизит шансы, не до нуля впрочем.

firkax ★★★★★
()
Ответ на: комментарий от askh

Так же можно и все бекдоры спалить, как мы теперь будем привилегии повышать?

firkax ★★★★★
()

esp4 esp6 rxrpc

А так их ещё в прошлой уязвимости все удалили. Так что эта работать не будет.

firkax ★★★★★
()
Ответ на: комментарий от static_lab

Давайте сделаем петицию в Unicode Consortium.

Моментально примут, если сказать, что это новый гендер.

Chiffchaff
()
Ответ на: комментарий от static_lab

На лоре эмоции реализованы с помощью PNG-изображений. Юникод вроде никак не задействован.

vbr ★★★★★
()
Ответ на: комментарий от askh

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

Одни нейросети будут выявлять ошибки, другие - их добавлять. Ведь там нет интеллекта, оно просто выдёргивает из памяти куски уже написанного кода, на котором было обучено, которые как будто подходят по контексту. Делает это лучше джуна, но всё равно неидеально (примеров можно найти массу).

Chiffchaff
()
Ответ на: комментарий от askh

Это последствия развития нейросетей?

Конкретно эту уязвимость, похоже, действительно нашли с помощью инструмента V12 (v12.sh), использующего нейросети.

Видимо теперь в Linux начнут ошибку за ошибкой выявлять?

Поживём-увидим. Ошибки в линуксе всегда были. Было бы интересно посмотреть на статистику, хотя чисто субъективно это не похоже на какой-то ужас. Если их и стало больше, то не на несколько порядков. Пока живём.

Вот когда уязвимости повалят тысячами в неделю, да не просто уязвимости, а серьёзные, из разряда RCE, вот тогда будет ужас-ужас. Но пока такого не произошло. Я последние уязвимости вообще проигнорировал. Потихоньку пропатчат, а так я на своих компьютерах что попало и не запускал.

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

Именно. Популярность тут играет первейшую роль. Никому не интересно тратить миллионы долларов на поиск уязвимостей в Hurd или NetBSD. А на поиск уязвимостей в линуксе - интересно. И этот процесс, безусловно, увеличивает общую защищённость системы в итоге.

Но вообще потихоньку назревает необходимость в системе нового поколения. Безопасной системе. Доказанно безопасной, хотя бы для нижних уровней. Микроядро вроде L4 с доказательством отсутствия багов. Процесс разработки, приоритезирующий безопасность. ИИ-агенты, постоянно сканирующие каждый коммит. И так на всех уровнях: ядро, драйверы, юзерспейс. Безопасность на архитектурном уровне. Чтобы уязвимость в релизе такой системы была нонсенсом и проколом сразу на нескольких уровнях. Жить на наследии 70-х до бесконечности едва ли возможно. Думаю, кто-то из больших компаний на такие разработки сподобится. Скорей всего гугл, они любят изобретать всё с нуля. Может даже и с нами поделится.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 5)
Ответ на: комментарий от askh

Так точно. Гипотеза в том, что ряд исправлений уязвимостей в пределе сходится к полному исчерпанию сегодняшних возможностей ИИ.

seiken ★★★★★
()
Ответ на: комментарий от vbr

Юникод вроде никак не задействован.

ReactionService.scala#L96:

val DefinedReactions: Map[String, String] = Map(
    "\uD83D\uDC4D" -> "большой палец вверх",
    "\uD83D\uDC4E" -> "большой палец вниз",
    "\uD83D\uDE0A" -> "улыбающееся лицо",
    "\uD83D\uDE31" -> "лицо, кричащее от страха",
    "\uD83E\uDD26" -> "facepalm",
    "\uD83D\uDD25" -> "огонь",
    "\uD83E\uDD14" -> "задумчивое лицо",
    "\uD83E\uDD21" -> "лицо клоуна",
    "\u2615\u2615" -> "два чая этому господину!",
    "\uD83E\uDE97" -> "боян!!!1111",
    "\uD83D\uDE22" -> "грусть-печаль",
    "\uD83D\uDEAE" -> "не нужно!",
    "\uD83C\uDF89" -> "хлопушка")

А потом уже:

На сайте используются изображения Emoji, созданные проектом Twemoji.

dataman ★★★★★
()
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от PPP328

PoC есть, но как обычно, надо 50 раз всё патчить, чтобы скомпилилась. Ох уж эти нейрохакеры.

Ну и да:

$ ./a.out 
[*] uid=1000 euid=1000 gid=1000 egid=1000
[*] mode=xfrm_espintcp_pagecache_replace collateral=after

[*] target=/bin/su size=56229
outer_write_open_denied=1 errno=13 (Permission denied)
namespace_gate_failed: unshare(CLONE_NEWUSER) errno=22 (Invalid argument)
sync read: Permission denied

Ниработает

PPP328 ★★★★★
()

Интересно, это обосраный автором курла Mythos работает или просто так совпало?

zabbal ★★★★☆
()
Ответ на: комментарий от vbr

Мусорная корзина по форме выглядит как дырявое решето, а по содержанию как репозиторий для ненужно. Концептуально :)

static_lab ★★★★★
()

Fragnesia

У них скоро названия закончался уже. Будут номера присваивать: Fragnesia 235.8

Beewek ★★★
()
Ответ на: комментарий от PPP328

Оно ещё и неймспейсы требует?

Ну а так, если ты «dirtyfrag» фиксил или его у тебя не было то и этого не будет.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от unclestephen

А кто сказал, что использование ИИ понижает требования к квалификации использующего?

seiken ★★★★★
()
Ответ на: комментарий от Byers

Ну, вообще говоря, такие баги рушат стандартные механизмы контроля доступа DAC/MAC. Это исключительно серьезная проблема в любой маломальски сложной организации, где одна и та же система используется разными пользователями с разными привилегиями. Т.е. это практически любые серверы организаций, где есть строгое разделение на админов, разрабов и пользователей сервиса.

Иными словами, это мега-дыра и позор для организаторов процесса разработки Линукс.

seiken ★★★★★
()

пользователи самосборных ядер требуют чего-нибудь работающего везде, наконец!

Sylvia ★★★★★
()

прям хорошо год начался, неделя - и новый взлом линуха/ядра/экосистемы.
прям праздник какой-то! :о) (на самом деле, конечно-же нет (r) а.коневский)

p.s. а, вообще, этого и следовало ожидать

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 3)

мне ФСБ и ФСТЭК сертифицировали ваш линукс и сказали можно пользоваться все соответствует требованиям безопасности, никаких уязвимостей нет

Neresar ★★
()
Ответ на: комментарий от Neresar

а фаервол и IDS от ИНФОТЕКС за 100500 денег ты не купил? тогда магии не произойдёт

unclestephen ★★★★★
() автор топика
Последнее исправление: unclestephen (всего исправлений: 1)
Ответ на: комментарий от dataman

Хто псевдопары для символов юникода с индексом более 65536. Нужны для обхода ограничений ucs-2/utf-16

zanac1
()

Сервер на линукс это уже какой-то моветон – никаких задач лучше других ОС не решает, если вообще когда-то решал, а ошибок и дыр содержит страшное кол-во. Линукс перестал быть опенсорсом и превратился в корпоративный (читай плохой, дырявый, абы как сделанный) инструмент огромных компаний типа гугла или амазона с их идиотскими, ненужными нормальным людям, проблемами.

ant1
()
Последнее исправление: ant1 (всего исправлений: 1)

Это только начало. С приходом раста и вайбкодеров все будет хуже и хуже с каждым днем

Reset ★★★★★
()
Ответ на: комментарий от Reset

Это только начало. С приходом раста и вайбкодеров все будет хуже и хуже с каждым днем

Пора реактос доводить до готовности на десктопе. Или Symbian…

zanac1
()
Ответ на: комментарий от firkax

Ну, некоторые от прошлой уязвимости могли запрещать создание непривилегированным пользователям создавать namespace. И тогда ipsec продолжал работать. А может кто-то себе уже пропатчил esp-модули и разблокировал. А теперь только блеклистить.

А зачем повторять про rxrpc — непонятно, вроде, его ещё не исправили и у всех, кому нужно, он уже должен быть запрещён.

Забавно, что когда правили Dirty Frag, заявляли, что проблема только в XFRM ESP-in-UDP, а в коде XFRM ESP-in-TCP ошибки нет. Реально, они код переусложнили, что пока им не ткнут, что есть ошибка, не видят.

mky ★★★★★
()

Странно что ещё никто не поглумился над тем, что аббревиатура ESP расшифровывается как Encapsulating Security Payload. :)

Что-то как-то всё больше и больше хочется давать в рыло всяким апологетам «БиЗапасТнаСТи!!!111». :) Вот куда ни плюнь, вся эта их «бизапастнасть» приводит исключительно к дырам, багам, и факапам.

Да и вообще, вся концепция безопасности в IT за последние пару десятилетий завернула куда-то совсем не туда. Как, кстати и т.н. «ИИ» и ещё куча всего прочего.

Stanson ★★★★★
()
Ответ на: комментарий от static_lab

Нужна новая эмоция. Решето.

Давайте сделаем петицию в Unicode Consortium.

что бы дважды не вставать, то делайте две эмоции Решето и ДырявоеРешето

Atlant ★★★★★
()
Ответ на: комментарий от sedajko_stjumchik

Приснился однажды чевеид снатайко страшный сон: ночь, улица, линукс.. и нет безопастности.

ant1
()
Ответ на: комментарий от Stanson

вся концепция безопасности в IT

А ты не лезь в «IT». Вам OpenBSD и соляру на что дали? Ах, да, в не «IT» денег жи нет. Там где профессионалы занимаются делом почему-то всегда так. Деньги только в помоях валяются.

ant1
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.