🇰🇷 한글 설명
Linux 커널의 libceph 구성 요소 내 __ceph_x_decrypt() 함수에서 경계 외 메모리 접근(Out-of-bounds access) 취약점이 발견되었습니다. 복호화된 데이터의 크기가 ceph_x_encrypt_header 구조체를 담기에 충분한지 확인하지 않아 발생하며, 특정 메시지 프레임 유형에서 메모리 오류를 유발할 수 있습니다.
💡 쉬운 설명
데이터를 해독하는 과정에서 데이터의 크기가 너무 작은데도 불구하고 특정 정보를 읽으려 시도하여 발생하는 오류입니다. 이로 인해 시스템이 불안정해지거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
libceph: Fix potential out-of-bounds access in __ceph_x_decrypt()
In __ceph_x_decrypt(), a part of the buffer p is interpreted as a
ceph_x_encrypt_header, and the magic field of this struct is accessed.
This happens without any guarantee that the buffer is large enough to
hold this struct. The function parameter ciphertext_len represents the
length of the ciphertext to decrypt and is guaranteed to be at most the
remaining size of the allocated buffer p. However, this value is not
necessarily greater than sizeof(ceph_x_encrypt_header). E.g., a message
frame of type FRAME_TAG_AUTH_REPLY_MORE, that is just as long to hold
the ciphertext at its end with a ciphertext_len of 8 or less, can
trigger an out-of-bounds memory access when accessing hdr->magic.
This patch fixes the issue by adding a check to ensure that the
decrypted plaintext in the buffer is large enough to represent at least
the ceph_x_encrypt_header.
📍 영향받는 시스템
Linux kernel (libceph 모듈을 사용하는 시스템)
⚔️ 공격 벡터
조작된 크기의 Ceph 암호화 메시지 프레임을 전송하여 경계 외 메모리 접근 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인합니다.