CVE-2026-80561 in LinuxИнформация

Сводка

по VulDB • 26.08.2026

В ядре Linux была устранена следующая уязвимость:

libceph: исправление нескольких небезопасных операций декодирования в функции decode_locker()

Функция `decode_locker()` в файле `cls_lock_client.c` содержит три небезопасные операции декодирования, которые позволяют злонамеренному или скомпрометированному OSD (Object Storage Daemon) инициировать чтение за пределами буфера slab-allocator:

1. Вызов `ceph_decode_copy()` для поля имени типа `locker_id_t` не имеет предварительной проверки границ. Если указатель `p` равен значению `end` после того, как функция `ceph_start_decoding()` приняла значение `struct_len=0`, происходит чтение 9 байт (sizeof(ceph_entity_name)) за пределами проверенных границ буфера.

2. Операция `*p += sizeof(struct ceph_timespec)` после заголовка типа `locker_info_t` представляет собой непроверенное смещение указателя. Злонамеренный OSD может установить значение `p` больше, чем `end`, что приведет к тому, что все последующие проверки `_safe` будут проходить успешно против ложных границ.

3. Вызов `len = ceph_decode_32(p)` не имеет предварительной проверки границ, а непосредственно следующая за ним операция `*p += len` не ограничена сверху. Злонамеренный OSD может отправить значение `len=0xffffffff`, что приведет к смещению указателя `p` на гигабайты вперед относительно значения `end`, полностью выходя из окна декодирования.

Все три проблемы исправлены путем замены небезопасных операций на их безопасные аналоги: `ceph_decode_copy` -> `ceph_decode_copy_safe` `*p += sizeof(...)` -> `ceph_decode_skip_n` `ceph_decode_32(p)` -> `ceph_decode_32_safe` `*p += len` -> `ceph_decode_skip_n`

Добавлена новая метка для возврата кода ошибки `-EINVAL` при любом нарушении границ. Значение `-EINVAL` является корректным в данном случае: полученные от OSD данные имеют структурные дефекты, что представляет собой некорректный аргумент согласно контракту декодирования, независимо от того, кто виноват — вызывающая сторона или канал передачи данных (wire).

Модель злоумышленника: злонамеренный или скомпрометированный OSD в многопользовательском развертывании Ceph может инициировать эксплуатацию этой уязвимости против любого клиента ядра, который вызывает метод класса `lock.get_info` (например, во время получения эксклюзивной блокировки RBD), не требуя никаких дополнительных привилегий кроме установления сессии OSD.

[ idryomov: использование функции ceph_decode_skip_string() для пропуска описания, сокращение журнала изменений ]

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Ответственный

Linux

Резервировать

26.08.2026

Раскрытие

26.08.2026

Модерация

принято

Вход

VDB-395857

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Do you know our Splunk app?

Download it now for free!