🔍 CVE-2026-52923

7.8
CVSS Score
HIGH
2026-06-24
2026-10-19 20:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 checkpoint/restore 경로에서 SysV IPC ID 할당 시 상한선 제한이 없어 유효 범위를 초과하는 할당이 발생할 수 있는 취약점입니다. 이로 인해 잘못된 인덱스 참조가 발생하여 메모리 누수나 해제된 메모리 참조(Use-After-Free)로 인한 시스템 불안정성을 초래할 수 있습니다.

💡 쉬운 설명

시스템이 사용할 수 있는 번호표 범위를 넘어서는 번호표를 발급해버리는 오류입니다. 이로 인해 나중에 잘못된 번호표를 확인하다가 이미 사용이 끝난 메모리 영역을 건드려 시스템에 문제가 생길 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ipc: limit next_id allocation to the valid ID range The checkpoint/restore sysctl path can request the next SysV IPC id through ids->next_id. ipc_idr_alloc() currently forwards that request to idr_alloc() with an open-ended upper bound. If the valid tail of the SysV IPC id space is full, the allocation can spill beyond ipc_mni. The returned SysV IPC id still uses the normal index encoding, so later lookup and removal can target the wrong slot. This leaves the real IDR entry behind and breaks the IDR state for the object. The bug is in ipc_idr_alloc() in the checkpoint/restore path. 1. ids->next_id is passed to: idr_alloc(&ids->ipcs_idr, new, ipcid_to_idx(next_id), 0, ...) 2. The zero upper bound makes the allocation effectively open-ended. Once the valid SysV IPC tail is occupied, idr_alloc() can spill past ipc_mni and allocate an entry beyond the valid IPC id range. 3. The new object id is still encoded with the narrower SysV IPC index width: new->id = (new->seq << ipcmni_seq_shift()) + idx 4. Later removal goes through ipc_rmid(), which uses: ipcid_to_idx(ipcp->id) That truncates the real IDR index. An object actually stored at a high index can then be removed as if it lived at a low in-range index. 5. For shared memory, shm_destroy() frees the current object anyway, but the real high IDR slot is left behind as a dangling pointer. 6. A subsequent walk of /proc/sysvipc/shm reaches the stale IDR entry and dereferences freed memory. Prevent this by bounding the requested allocation to ipc_mni so the checkpoint/restore path fails once the valid range is exhausted.

📍 영향받는 시스템

Linux kernel (checkpoint/restore 기능을 사용하는 버전)

⚔️ 공격 벡터

SysV IPC ID 공간을 가득 채운 후 checkpoint/restore 경로를 통해 범위를 벗어난 ID 할당 유도

🛡️ 대응 방법

커널 패치를 통해 ipc_idr_alloc() 시 할당 범위를 ipc_mni로 제한

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel