CVE-2026-68159

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
10/08/2026
Last modified:
17/08/2026

Description

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