Ad

CVE-2026-68159

CRITICAL CVSS 3.1: 9,8 EPSS 0.55%
Обновлено 14 августа 2026
Ceph
Параметр Значение
CVSS 9,8 (CRITICAL)
Поставщик Ceph
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: libceph: привязал длину pg_{temp,upmap,upmap_items} к CEPH_PG_MAX_SIZE __decode_pg_temp() декодирует длину, контролируемую пользователем, но только отклоняет значения, достаточно большие, чтобы переполнить выделение; это не привязывает его к CEPH_PG_MAX_SIZE. Помощник поддерживает декодирование pg_temp и pg_upmap, а также apply_upmap()/get_temp_osds() позже скопирует декодированный список в файл фиксированного размера. структура массива в стеке ceph_osds.osds[CEPH_PG_MAX_SIZE]. Монитор, который отправляет OSDMap с записью pg_temp/pg_upmap длиной более 32, таким образом, вызывает стек за пределами поля пишите.

OSD, установленный для одного PG, никогда не может превышать CEPH_PG_MAX_SIZE, поэтому отклоняйте дольше записи во время декодирования. Граница значительно ниже старого порога переполнения, поэтому он также покрывает переполнение размера выделения, против которого была защищена предыдущая проверка. ОШИБКА: KASAN: стек за пределами границ в ceph_pg_to_up_acting_osds Запись размера 4... с помощью эксплойта задачи kasan_report (mm/kasan/report.c:595) ceph_pg_to_up_acting_osds (net/ceph/osdmap.c:2617 net/ceph/osdmap.c:2833) Calc_target (net/ceph/osd_client.c:1638) __submit_request (net/ceph/osd_client.c:2394) ceph_osdc_start_request (net/ceph/osd_client.c:2490) ceph_osdc_call (net/ceph/osd_client.c:5164) rbd_dev_image_probe (drivers/block/rbd.c:6899) do_rbd_add (drivers/block/rbd.c:7138) ...

ОШИБКА ядра в net/ceph/osdmap.c:2670! [идрёмов: сделайте то же самое в __decode_pg_upmap_items() ]

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: libceph: bound pg_{temp,upmap,upmap_items} length to CEPH_PG_MAX_SIZE __decode_pg_temp() decodes an user-controlled length but only rejects values large enough to overflow the allocation; it does not bound it to CEPH_PG_MAX_SIZE. The helper backs both pg_temp and pg_upmap decoding, and apply_upmap()/get_temp_osds() later copy the decoded list into the fixed-size on-stack array struct ceph_osds.osds[CEPH_PG_MAX_SIZE]. A monitor that sends an OSDMap with a pg_temp/pg_upmap entry longer than 32 thus causes a stack out-of-bounds write. An OSD set for a single PG can never exceed CEPH_PG_MAX_SIZE, so reject longer entries at decode time. The bound is well below the old overflow threshold, so it also covers the allocation-size overflow the previous check guarded against. BUG: KASAN: stack-out-of-bounds in ceph_pg_to_up_acting_osds Write of size 4 ... by task exploit kasan_report (mm/kasan/report.c:595) ceph_pg_to_up_acting_osds (net/ceph/osdmap.c:2617 net/ceph/osdmap.c:2833) calc_target (net/ceph/osd_client.c:1638) __submit_request (net/ceph/osd_client.c:2394) ceph_osdc_start_request (net/ceph/osd_client.c:2490) ceph_osdc_call (net/ceph/osd_client.c:5164) rbd_dev_image_probe (drivers/block/rbd.c:6899) do_rbd_add (drivers/block/rbd.c:7138) ... kernel BUG at net/ceph/osdmap.c:2670! [ idryomov: do the same in __decode_pg_upmap_items() ]

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1