CVE: CVE-2026-80528
Продукт: Linux Kernel
Дата публикации: 26.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,52%; процентиль 41,96%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В модуле Ceph ядра Linux обнаружена уязвимость, приводящая к падению ядра (kernel panic). Ошибка возникает при обработке ответов MDS, когда поле
current->journal_info используется для хранения данных Ceph, а механизм освобождения памяти (reclaim) интерпретирует этот указатель как структуру JBD2. Сбой происходит при одновременной работе Ceph и ext4 под давлением памяти.Основные характеристики
Риск представляет собой отказ в обслуживании (DoS) на уровне ядра, приводящий к его падению (kernel panic). Сбой происходит при одновременной работе Ceph и других файловых систем под давлением памяти.
- Тип ошибки: Неверное использование общего поля
current->journal_info(type confusion) при освобождении памяти.
- CVSS: 9.8 (CRITICAL), вектор
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
- Условия атаки: Требуется активная работа Ceph и наличие других файловых систем (например, ext4) на системе.
- Факт эксплуатации: В каталоге CISA KEV подтверждений активной эксплуатации нет.
- EPSS: 0,52% (процентиль 41,96%), что указывает на низкую вероятность эксплуатации в ближайшем будущем.
Какие продукты и версии затронуты
Уязвимость затрагивает ядра Linux, содержащие модуль Ceph и уязвимый код в
fs/ceph/mds_client.c. Ошибка была введена в коммите 315f24088048 и исправлена в стабильных ветках.- Версия ядра: 6.18.38-i3 (зафиксирована в отчёте о сбое).
- Компонент:
fs/ceph/mds_client.c(функцияhandle_reply).
- Исправление: Внесено в стабильные ветки ядра (stable tree) в августе 2026 года.
Причина уязвимости
Причина кроется в том, что функция
handle_reply() в модуле Ceph использует поле current->journal_info для хранения указателя на структуру ceph_mds_request.В это время в коде выполняются операции по заполнению кэша inode и dentry. Если в этот момент система испытывает нехватку памяти, срабатывает механизм прямого освобождения памяти (direct reclaim). Этот механизм может очистить dentry из других файловых систем, например ext4.
Если при этом затрагивается inode ext4, файловая система пытается начать транзакцию JBD2. Код JBD2 ожидает в
current->journal_info указатель на журнал, но находит там структуру Ceph. Происходит обращение к полю r_tid как к h_transaction, что приводит к обращению к невалидной памяти и падению ядра.Как работает атака
Атака не требует внешних действий злоумышленника, если система уже работает с Ceph. Срабатывание ошибки зависит от внутренних процессов ядра.
- Процесс Ceph обрабатывает ответ от MDS и сохраняет указатель в
current->journal_info.
- В процессе заполнения кэша происходит выделение памяти, которое не удаётся выполнить из-за нехватки свободных страниц.
- Ядро запускает direct reclaim, который начинает удалять dentry из других файловых систем.
- При удалении dentry ext4 вызывается
ext4_dirty_inode, который инициирует JBD2.
- JBD2 обращается к
current->journal_info, интерпретируя его как журнал, и вызывает сбой.
Условия успешной эксплуатации
Для срабатывания уязвимости необходимо выполнение следующих условий на целевой системе:
- В ядре загружен модуль Ceph и он активно работает.
- На системе смонтированы другие файловые системы, поддерживающие JBD2 (например, ext4).
- Система находится под давлением памяти, что вызывает срабатывание direct reclaim.
- В момент освобождения памяти происходит операция, затрагивающая inode ext4.
Возможный сценарий атаки
Сценарий срабатывания происходит в фоновом режиме при работе с файлами Ceph. Администратор может наблюдать падение системы без видимых внешних атак.
- Пользователь или сервис обращается к файлам в Ceph.
- Ядро обрабатывает ответ MDS и начинает заполнять кэш.
- Одновременно на системе выполняется операция, потребляющая много памяти (например, копирование файлов на ext4).
- Срабатывает механизм освобождения памяти, который «затрагивает» ext4.
- Происходит конфликт типов в
current->journal_infoи ядро падает с ошибкойOops: 0000000096000004.
Есть ли публичный эксплойт
Публичный эксплойт в виде готового PoC или кода для удалённого срабатывания в источниках не указан. Ошибка является внутренней логической и срабатывает при определённых условиях работы системы.
- PoC: Не подтверждён в доступных источниках.
- Техническое описание: Доступно в коммитах исправления.
- Эксплуатация: В каталоге CISA KEV нет записей об активной эксплуатации.
Признаки эксплуатации
Специфичных индикаторов компрометации (IOC) для этой уязвимости нет, так как она приводит к отказу в обслуживании, а не к удалённому коду.
- Журналы ядра: Записи
kernel panic,Oops: 0000000096000004.
- Стек вызовов: Наличие
jbd2__journal_start,ceph_con_workfnв backtrace.
- Системные логи: Сообщения о падении ядра в
dmesgили/var/log/kern.log.
Как обнаружить атаку
Обнаружение атаки сводится к мониторингу стабильности системы и анализу логов ядра.
- Мониторинг: Настройка алертов на события
kernel panicиOops.
- Анализ логов: Поиск в
dmesgзаписей с адресом00000000077b4818и функциейjbd2__journal_start.
- Контроль нагрузки: Отслеживание давления на память, которое может провоцировать срабатывание ошибки.
Как проверить свою версию
Для проверки версии ядра и наличия уязвимости используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Сравните полученную версию с перечнем исправленных версий в официальных источниках дистрибутива. Если версия 6.18.38 или выше, проверьте наличие патча
00c12f57a87f537fa8779258fb3a03003a99963e.Исправление
Единственным надёжным способом устранения уязвимости является обновление ядра до версии, содержащей исправление.
- Обновление ядра: Установите последнюю стабильную версию ядра из репозитория вашего дистрибутива.
- Перезагрузка: После обновления ядра требуется перезагрузка системы для применения изменений.
- Проверка: Убедитесь, что после перезагрузки версия ядра соответствует исправленной.
Временные меры защиты
Пока не установлено обновление, можно снизить вероятность срабатывания ошибки:
- Ограничение Ceph: Если возможно, временно отключите или ограничьте нагрузку на Ceph.
- Управление памятью: Настройте параметры ядра для более агрессивного освобождения памяти до срабатывания direct reclaim.
- Изоляция: Разместите Ceph и ext4 на разных узлах, если архитектура это позволяет.
Как проверить устранение уязвимости
После обновления ядра проверьте, что уязвимость устранена:
Bash:
uname -r
grep -i "ceph" /proc/modules
Убедитесь, что версия ядра содержит патч. Проведите нагрузочное тестирование с Ceph и ext4, чтобы убедиться в отсутствии падений. Проверьте логи ядра на предмет новых ошибок.
Вывод
CVE-2026-80528 представляет серьёзный риск для систем, использующих Ceph. Ошибка приводит к падению ядра и отказу в обслуживании. Администраторам необходимо срочно обновить ядро до исправленной версии. До обновления рекомендуется снизить нагрузку на Ceph и контролировать состояние системы.
Официальные источники
- NVD — CVE-2026-80528
- FIRST EPSS — CVE-2026-80528
- ceph: avoid fs reclaim while using current->journal_info - kernel/git/stable/linux.git - Linux kernel stable tree
- ceph: avoid fs reclaim while using current->journal_info - kernel/git/stable/linux.git - Linux kernel stable tree
- ceph: avoid fs reclaim while using current->journal_info - kernel/git/stable/linux.git - Linux kernel stable tree
- ceph: avoid fs reclaim while using current->journal_info - kernel/git/stable/linux.git - Linux kernel stable tree
- ceph: avoid fs reclaim while using current->journal_info - kernel/git/stable/linux.git - Linux kernel stable tree
- ceph: avoid fs reclaim while using current->journal_info - kernel/git/stable/linux.git - Linux kernel stable tree
- ceph: avoid fs reclaim while using current->journal_info - kernel/git/stable/linux.git - Linux kernel stable tree
- ceph: avoid fs reclaim while using current->journal_info - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 29.08.2026 — Опубликована первая версия материала.
