🇰🇷 한글 설명
Linux 커널의 libceph 구성 요소에서 모니터 수가 0으로 표시된 잘못된 monmap을 유효한 것으로 처리하는 취약점이 발견되었습니다. 이러한 잘못된 데이터가 전달될 경우 클라이언트의 __open_session() 함수에서 assertion 오류를 유발하여 시스템이 충돌할 수 있습니다.
💡 쉬운 설명
네트워크를 통해 전달된 잘못된 정보 때문에 컴퓨터 시스템이 갑자기 멈추거나 꺼질 수 있는 문제입니다. 모니터가 하나도 없다는 말도 안 되는 정보를 받았을 때 시스템이 이를 제대로 걸러내지 못해 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
libceph: Reject monmaps advertising zero monitors
A message of type CEPH_MSG_MON_MAP contains a monmap that is sent from a
monitor to the client. This monmap contains information about the
existing monitors in the cluster. Currently, a monmap indicating that
there are zero monitors in the cluster is treated as valid. However, it
is impossible to have zero monitors in the cluster and still receive a
valid monmap from a monitor. Therefore, such a monmap must be corrupted
and should be treated as invalid. Furthermore, a monmap with a monitor
count of zero can subsequently crash the client when attempting to open
a session with a monitor in __open_session(). This happens because the
"BUG_ON(monc->monmap->num_mon < 1)" assertion in pick_new_mon() is
triggered.
This patch extends a check in ceph_monmap_decode() to also reject
arriving mon_maps with num_mon == 0 rather than only with
num_mon > CEPH_MAX_MON.
[ idryomov: drop "log output for unusual values of num_mon" part ]
📍 영향받는 시스템
Linux kernel (libceph module 사용 시스템)
⚔️ 공격 벡터
조작된 CEPH_MSG_MON_MAP 메시지를 클라이언트에 전송하여 시스템 충돌 유도
🛡️ 대응 방법
libceph의 ceph_monmap_decode() 함수에 num_mon == 0 체크 로직이 포함된 최신 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 배포판 보안 공지를 통해 확인하십시오.
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
NVIDIA vGPU Guest Driver for Linux