🇰🇷 한글 설명
Linux 커널의 libceph 구성 요소에서 OSD 익스텐트 맵을 검증하기 전에 커서가 전진하는 취약점이 발견되었습니다. 악의적인 OSD 응답이 요청 범위를 벗어나는 잘못된 오프셋을 전달할 경우, 커널 클라이언트가 요청 버퍼를 초과하여 데이터를 읽으려 시도하다가 커널 패닉(BUG_ON)을 일으킬 수 있습니다.
💡 쉬운 설명
인증된 서버가 조작된 데이터를 보내면 컴퓨터의 운영체제(커널)가 예상치 못한 위치의 데이터를 읽으려다 갑자기 멈추거나 꺼질 수 있는 문제입니다. 이는 시스템을 강제로 중단시켜 서비스 장애를 유발할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
libceph: validate OSD extent maps before cursor advance
net/ceph/osd_client.c:osd_sparse_read() validates that the sparse-read
data length matches the summed extent lengths, but it does not validate
that each OSD-supplied extent is monotonic and lies inside the original
request range. A malformed authenticated OSD reply can advertise a
far-forward nonzero extent offset with a matching data length and make
the client advance the message-data cursor beyond the request buffer.
This reaches the BUG_ON(!*length) assertion in ceph_msg_data_next() from
the client receive path.
Impact: A malicious or compromised authenticated Ceph OSD peer can crash
a kernel Ceph client via a malformed sparse-read reply.
Reject sparse extent maps that overflow, move backwards, overlap, or
extend outside the original sparse-read request before advancing the
cursor.
[ idryomov: perform sparse_extent_map_valid() check a bit earlier,
in CEPH_SPARSE_READ_DATA_LEN instead of CEPH_SPARSE_READ_DATA_PRE
state ]
📍 영향받는 시스템
Linux kernel (libceph module 사용 시스템)
⚔️ 공격 벡터
인증된 악의적 또는 침해된 Ceph OSD 피어가 조작된 sparse-read 응답을 전송
🛡️ 대응 방법
libceph의 익스텐트 맵 검증 로직이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 패치된 버전인지 보안 권고안과 대조하여 확인합니다.