🔍 CVE-2026-89656

9.8
CVSS Score
CRITICAL
2026-09-11
2026-10-19 09:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 libceph 구성 요소에서 CRUSH ID가 일치하지 않는 버킷을 허용하여 발생하는 취약점입니다. 악의적으로 조작된 맵을 통해 버킷이 다른 버킷의 워크스페이스를 재사용하게 함으로써, 메모리 경계를 벗어나는 OOB(Out-of-Bounds) 쓰기 오류를 유발할 수 있습니다.

💡 쉬운 설명

데이터 저장 위치를 결정하는 규칙(CRUSH 맵)을 조작하여 컴퓨터 메모리의 허용된 범위를 넘어 데이터를 쓰는 보안 결함입니다. 이를 통해 시스템의 메모리 영역을 침범하거나 오류를 일으킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: libceph: reject buckets with mismatched CRUSH ids crush_decode() stores bucket data by array slot, and the mapper later derives the per-bucket workspace index from the decoded bucket id. A malformed map can therefore make one bucket reuse another bucket's workspace by encoding an id different from -1 - slot. For uniform buckets, the second replica selection expands the source bucket's permutation into that aliased workspace buffer. If the source bucket is larger than the aliased bucket, the write runs past the smaller permutation array and can escape the kvmalloc'd CRUSH workspace. KASAN reports a slab OOB write of 4 bytes in bucket_perm_choose(). Reject buckets whose encoded id does not match their array slot. Valid CRUSH maps already use the canonical negative id corresponding to the bucket slot, so this restores the invariant expected by work->work[-1 - in->id] without changing valid map behavior.

📍 영향받는 시스템

Linux kernel (libceph module 사용 환경)

⚔️ 공격 벡터

조작된 CRUSH 맵을 통해 잘못된 버킷 ID를 인코딩하여 메모리 경계 외 쓰기 유도

🛡️ 대응 방법

libceph에서 버킷 ID와 배열 슬롯이 일치하지 않는 경우를 거부하도록 커널 패치 적용

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 최신 보안 패치 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel