Обновить

Выполненный в ядре Linux 6.1 перевод VMA (Virtual Memory Area) со структуры данных "red-black tree" на "maple tree" привёл к появлению уязвимости (CVE-2023-3269), позволяющей непривилегированному пользователю добиться выполнения своего кода с правами ядра. Уязвимость, которой присвоено кодовое имя StackRot, проявляется начиная с выпуска ядра 6.1 и устранена в обновлениях 6.4.1, 6.3.11 и 6.1.37.

Структура "maple tree" представляет собой вариант B-tree, поддерживающий индексацию по диапазонам значений и спроектированный для эффективного использования кэша современных процессоров. По сравнению с "red-black tree" применение "maple tree" позволяет добиться более высокой производительности. Уязвимость вызвана ошибкой в обработчике расширения стека - в структуре "maple tree", используемой при управлении областями виртуальной памяти в ядре, замена узла в дереве могла произойти без выставления блокировки на запись, что создавало условия для обращения к области памяти после её освобождения (use-after-free).

Эксплуатацию уязвимости усложняло то, что узлы в структуре "maple tree" освобождаются в отложенном режиме с использованием callback-вызовов с блокировками RCU (Read-copy-update). Тем не менее, исследователям удалось преодолеть возникшие трудности и подготовить рабочий эксплоит, который планируют опубликовать в конце июля, чтобы дать пользователям время обновить свои системы. Эксплуатация возможна почти во всех конфигурациях ядра и требует лишь минимальных привилегий.

Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Как мы запустили Qwen3.8–27B целиком на RTX 5060 8 GB и получили ~30 токенов/с

Наш проект называется ExVRAM Lab. Это открытая исследовательская лаборатория, в которой мы проверяем, насколько большие локальные LLM можно запускать на обычных видеокартах с ограниченным объёмом VRAM, если использовать ultra‑low‑bit quantization, полное размещение весов на GPU и существующие open‑source inference‑технологии.

ExVRAM расшифровывается как Exchange Compute for VRAM. Основная идея проекта — в ряде сценариев выгоднее потратить часть свободной вычислительной мощности GPU на работу с более компактным представлением весов, чем хранить часть модели в оперативной памяти и постоянно передавать данные через PCIe.

Когда мы начинали проект, исходный вопрос был достаточно простой: можно ли запустить dense‑модель примерно на 27 миллиардов параметров на видеокарте всего с 8 ГБ VRAM так, чтобы она не просто «запустилась», а работала полностью на GPU, поддерживала длинный контекст и обеспечивала нормальную интерактивную скорость генерации.

В качестве основной тестовой системы мы используем NVIDIA GeForce RTX 5060 8 GB на архитектуре Blackwell. Основная модель в текущих экспериментах — Qwen3.8–27B.

Сначала результат выглядел не слишком впечатляюще. Модель запускалась, но значительная часть весов оставалась в системной памяти. Около 5,7 GiB весов находилось на GPU, ещё примерно 2,5 GiB — на CPU. Скорость генерации составляла порядка 3,8–5,5 токена в секунду.

При этом сама видеокарта была загружена далеко не полностью.

Это стало одним из первых важных наблюдений проекта. Проблема заключалась не столько в нехватке вычислительной мощности RTX 5060, сколько в том, что часть decoder weights находилась в RAM. Во время autoregressive generation данные приходилось постоянно передавать между CPU и GPU через PCIe.

Как мы запустили Qwen3.8–27B целиком на RTX 5060 8 GB и получили ~30 токенов/с

Публикации