Выпущена предварительная версия ядра Linux 6.18 RC2: устранение уязвимостей, исправления для ARM64 KVM

Линус Торвальдс выпустил второй релиз-кандидат (RC2) для ядра Linux версии 6.18. Хотя Linux 6.18-rc2 больше по размеру из-за устранения нескольких регрессий, выявленных в ходе автоматизированного тестирования, в целом разработка идёт нормально.
6.18 Регрессии RC1
В релиз-кандидате 2 содержится большое количество важных исправлений и обновлений.
Процесс прошёл не совсем гладко. Система автоматизированного тестирования Гюнтера сообщила о нескольких регрессиях в предыдущей версии rc1.
К счастью, некоторые из этих проблем были вызваны простыми ошибками при настройке или, возможно, багами в самой тестовой среде QEMU.
Например, проблемы с SH4 с обратным порядком байтов больше походили на проблемы QEMU, чем на новые ошибки ядра. Однако некоторые регрессии всё ещё присутствуют, поэтому сообщество должно продолжать тестирование.
В письме объявление о выпуске Kernel 6.18-rc2 Линус Торвальдс сообщил, что они продвигаются медленно и он пока не беспокоится.
Что нового в ядре 6.18-rc2

Релиз-кандидат 2 ядра Linux 6.18
Выпуск Linux 6.18-rc2 — это в первую очередь выпуск с исправлениями, в котором устранены многочисленные проблемы, в том числе регрессии, о которых сообщалось в rc1.
Наиболее значимые обновления и исправления в версии 6.18-rc2 касаются виртуализации, файловых систем (особенно шифрования SMB-клиента) и графических драйверов.
1. Виртуализация (KVM) и архитектура ARM64
KVM получил множество обновлений, в частности для архитектуры ARM64 и управления гостевой памятью:
- Гостевая память KVM: была проведена работа по преобразованию
KVM_CAP_GUEST_MEMFD_MMAP
вKVM_CAP_GUEST_MEMFD_FLAGS
. Был добавлен новыйINIT_SHARED
флаг, и теперь общие гостевые физические адреса (GPA) становятся недействительными, если память поддерживает этот флаг. Это обновление также позволяет использоватьmmap()
наguest_memfd
для виртуальных машин (ВМ) x86, использующих частную память. - Исправления для KVM ARM64: Марк Зингер выпустил 15 исправлений и обновлений. Они включают в себя модернизацию логики обнаружения HCR_EL2, исправление обработки WFxT, связанной с вложенной виртуализацией, и обновление вспомогательных средств контекста таймера.
- Самостоятельные тесты: было обновлено или добавлено несколько самостоятельных тестов KVM, специально для
guest_memfd
обработки и включения IRQ вvgic_lpi_stress
тестах. - Другие исправления KVM: были внесены изменения для защиты инициализации PMSCR_EL1 в зависимости от наличия расширения статистического профилирования (SPE), а также для предотвращения доступа к событиям vCPU до инициализации.
2. Файловые системы и хранилища
Основное внимание было уделено обновлению клиента SMB/CIFS для использования современных криптографических библиотек, а также важным исправлениям для обеспечения стабильности BTRFS и EXT4.
- Модернизация криптографии SMB/CIFS:
- Клиент SMB был обновлён для использования библиотеки SHA-512 для хеширования предварительной аутентификации SMB3.1.1.
- Теперь он использует библиотеку HMAC-SHA256 как для генерации ключей, так и для вычисления подписи SMB2.
- Библиотека MD5 теперь используется для хеширования символических ссылок M-F и вычисления подписи SMB1, а HMAC-MD5 используется для NTLMv2.
- Устаревшие криптовыделения были удалены.
- Значительные усилия были также направлены на улучшение
smbdirect
логики реализации, в том числе на управление областями памяти (MR) и обеспечение корректной отмены регистрации памяти.
- Исправления в BTRFS: устранены такие проблемы, как неправильная длина упреждающего расширения, утечка памяти в ioctl qgroup assign и неправильная обработка при отклонении профилей данных, отличных от SINGLE.
- EXT4 и JBD2: внесены исправления для обнаружения недопустимых комбинаций
INLINE_DATA + EXTENTS
флагов в ext4. Обновления гарантируют, что все текущие операции ввода-вывода будут завершены до освобождения блоков как в jbd2, так и в ext4. Бесхозная информация теперь освобождается с помощьюkvfree
. - NFS: Обновления были объединены, чтобы применить
delay_retrans
к асинхронным операциям и исправить отсутствие обновления состояния после загрузки.
3. Драйверы (DRM/графика и сетевые драйверы)
Графический (DRM) и сетевой стеки получили критические исправления:
- DRM/AMDGPU: исправлена обработка сбора данных для встроенного ПО, устранена циклическая переадресация в логике повторной передачи, устранены ошибки установки ограждений из неправильного контекста, а также устранено разыменование нулевого указателя в логике VRAM для устройств APU. Также были внесены изменения в инициализацию массива doorbell.
- DRM/xe: Устранены проблемы с миграцией целевой памяти. Данные переносятся в систему, если это указано с помощью
madvise
, исправлено усечение цвета и увеличено глобальное время ожидания недействительности. - Сеть/TLS: Уровень безопасности транспортного уровня (TLS) получил семь исправлений, в том числе логику, позволяющую сокращать длину зашифрованного сообщения до длины незашифрованного при коротком сращивании, а также обеспечивающую ожидание незавершённых асинхронных расшифровок или шифрований в случае ошибок.
4. Обновление ядра и инструментов
- BPF: Устранены утечки контекста в путях обработки ошибок для
bpf_prog_test_run_xdp
и утечки памяти в пути обработки ошибок__lookup_instance
. - x86/MM: В
switch_mm_irqs_off()
было внесено исправление для упорядочивания SMP, а в__cpa_addr()
устранена проблема с переполнением. - Поддержка Rust: в релиз вошли исправления для форматирования и устранения предупреждения Rust 1.92.0
unused_unsafe
в модуле Rust bitmap. - Конфигурация: Устаревшая опция
CONFIG_EXT3_FS
defconfig была удалена.
Тестирование ядра Linux 6.18 RC2
В Linux 6.18-rc2 внесены важные исправления. Пожалуйста, продолжайте тестировать этот релиз-кандидат, чтобы помочь разработчикам обеспечить плавный запуск финальной версии ядра 6.18.
Вы можете скачать Kernel 6.18 RC2 с сайта Kernel.org или из репозитория Линуса Торвальдса.
Ожидается, что финальная стабильная версия ядра Linux 6.18 выйдет примерно в конце ноября или начале декабря 2025 года.
Редактор: AndreyEx