Рекомендуем
VPS на Windows и Linux — от 49 ₽ за 7 дней Быстрый запуск сервера на NVMe для сайтов, ботов и других задач.
Выбрать VPS

В Linux Kernel исправили переполнение памяти SMB и сбои KVM — обновлены четыре ветки

21 октября 2026 года вышли Linux Kernel 7.2.12, 6.18.58, 6.12.114 и 6.6.160. Во всех четырёх версиях устранены переполнение буфера при Kerberos-аутентификации в SMB-сервере и ошибка обработки памяти виртуальных машин KVM. Другие изменения затрагивают USB-адаптеры Wi-Fi, сетевое оборудование Azure и зависания при работе с NFS.

В Linux Kernel исправили переполнение памяти SMB и сбои KVM
В Linux Kernel исправили переполнение памяти SMB и сбои KVM

Kerberos-аутентификация в ksmbd могла повредить память ядра

Во все четыре релиза вошло исправление ksmbd — SMB-сервера, встроенного в ядро Linux. Он позволяет предоставлять файлы по сети устройствам, работающим с протоколом SMB, в том числе компьютерам с Windows.

Ошибка находилась в функции krb5_authenticate(). Когда запрос установления SMB-сеанса (SMB2_SESSION_SETUP) шёл после других запросов внутри одного составного сообщения, код неверно оценивал свободное место для ответа Kerberos. При копировании ответного токена данные могли выйти за пределы выделенного буфера и перезаписать соседнюю область памяти ядра.

Разработчики скорректировали расчёт свободного места с учётом предыдущих ответов в составном SMB-сообщении. Исправление относится к конкретному пути Kerberos-аутентификации в ksmbd; опубликованный changelog сам по себе не подтверждает эксплуатацию ошибки в реальных атаках.

KVM больше не использует устаревшую карту памяти при работе в SMM

В версиях 7.2.12, 6.18.58, 6.12.114 и 6.6.160 исправлен кэш MMIO гипервизора KVM. MMIO — способ обращения к устройствам через адресное пространство памяти. Для ускорения таких операций KVM запоминает информацию о соответствующих участках памяти виртуальной машины.

Ошибка проявлялась при переходе виртуального процессора в режим System Management Mode (SMM), где применяется отдельная карта памяти. Старый код проверял кэш по обычной карте даже тогда, когда виртуальный процессор работал с картой SMM. После её изменения прежняя запись могла ошибочно считаться актуальной.

В результате KVM мог передать обращение к обычной оперативной памяти как операцию MMIO. Для вложенной виртуализации это создавало риск рассогласования отслеживаемых отображений памяти; тест разработчиков также воспроизводил предупреждение kvm_mmu_write_protect_fault(). Теперь кэш сверяется с активной картой памяти виртуального процессора. В описании исправления указано, что соответствующий регрессионный тест после патча проходит без предупреждения.

USB Wi-Fi на чипе AR9271 снова принимает корректные пустые ответы

В Linux 7.2.12, 6.18.58 и 6.12.114 откатили изменение драйвера ath9k, нарушившее работу USB-адаптера на чипе Qualcomm Atheros AR9271. Предыдущая проверка отвергала короткие ответы на команды WMI, хотя некоторые команды этого устройства штатно завершаются ответом нулевой длины.

Проблему сообщил пользователь, у которого после изменения перестал работать адаптер. Разработчики вернули прежнюю обработку таких ответов. В changelog отдельно указано, что ошибочный патч присутствовал в Linux 6.12.113. Для Linux 6.6.160 аналогичный откат среди перечисленных изменений не заявлен.

Передача пакетов через MANA в Azure ускорилась на 43% в тесте

Linux 7.2.12 и 6.18.58 получили исправление сетевого драйвера Microsoft Azure Network Adapter (MANA). Ранее буферы входящих пакетов выделялись без дополнительного места под заголовки, которое требовалось при пересылке данных. Поэтому на виртуальной машине, работающей как маршрутизатор, ядру приходилось заново выделять память и копировать каждый пересылаемый пакет.

Исправление заранее резервирует нужное место. Автор патча приводит результаты восьми запусков теста на виртуальной машине Azure с сетевым адаптером MANA, пересылавшей UDP-трафик:

ПоказательДо исправленияПосле исправления
Скорость пересылки3,06 Гбит/с4,37 Гбит/с
Обработанные пакеты272 830 в секунду390 560 в секунду

Прирост составил около 43%. Замеры относятся к конкретному сценарию пересылки трафика на MANA, поэтому их нельзя переносить на все сетевые адаптеры или любые нагрузки в Azure.

В LTS-ветках исправили SCTP и назначение владельцев SMB-файлов

В Linux 6.12.114 и 6.6.160 вошли дополнительные исправления безопасности сетевого стека. Одно из них проверяет поля аутентификации SCTP, полученные в сообщении COOKIE_ECHO. При определённых условиях специально сформированные данные могли приводить к чтению или записи за границами памяти. В описании патча упомянута возможность использовать 32-байтную запись за пределами буфера как элемент цепочки локального повышения привилегий. Речь идёт об определённом пути обработки SCTP, а не о любом сетевом соединении Linux.

В тех же двух ветках исправили поведение SMB-клиента при монтировании сетевой папки с параметрами forceuid или forcegid. Эти параметры задают, какому локальному пользователю или группе принадлежат отображаемые файлы. Раньше отдельные пути обработки могли подменять заданные значения идентификаторами, полученными от удалённого SMB-сервера. После исправления принудительно заданные UID и GID сохраняют приоритет.

NFSv4.2 и sched_ext получили исправления зависаний

Linux 7.2.12 и 6.18.58 устраняют ошибку в асинхронном копировании NFSv4.2. Сервер отправлял уведомление CB_OFFLOAD с нулевым идентификатором операции (stateid), и клиент не мог сопоставить его с ожидаемым копированием. В результате команда cp могла зависать. Патч исправляет перенос идентификатора в ответное уведомление; в changelog приведён тест серверного копирования между двумя NFS-экспортами.

Ещё одна правка для 7.2.12, 6.18.58 и 6.12.114 касается sched_ext — механизма, который позволяет запускать планировщики задач на базе BPF. При отключении процессора от работающей системы задача могла остаться в очереди BPF-планировщика, а операция cpu_down() — зависнуть. Исправление меняет обработку таких задач при выводе процессора из работы. Оно относится к системам с задействованным sched_ext.

Обновления разных поколений Linux сохраняют свои особенности

На момент публикации Linux 7.3 уже существует как основная ветка разработки (mainline): её финальная версия вышла 18 октября. При этом Linux 7.2.12 остаётся актуальным выпуском ветки stable, а серии 6.18, 6.12 и 6.6 сопровождаются как longterm.

Четыре обновления от 21 октября имеют общие исправления SMB-сервера и KVM, но остальные патчи различаются. Это заметно по возврату работоспособности AR9271 в трёх ветках, улучшению MANA в двух и дополнительным исправлениям SCTP в более старых LTS-сериях. Срок появления этих изменений в ядрах конкретных Linux-дистрибутивов зависит от их собственного цикла сопровождения пакетов.

Источники

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться