🇰🇷 한글 설명
Linux 커널의 ucs2_strnlen() 함수에서 경계 검사 오류로 인한 Out-of-bounds read 취약점이 발견되었습니다. 입력값이 지정된 최대 길이를 초과할 경우, NUL 종료 문자를 확인하기 전에 한 글자를 더 읽어버리는 Off-by-one 오류가 발생합니다.
💡 쉬운 설명
프로그램이 글자 수를 셀 때 정해진 범위를 아주 살짝 벗어나서 메모리를 읽는 실수입니다. 이로 인해 시스템의 민감한 정보가 유출될 가능성이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
lib/ucs2_string.c: fix out-of-bounds read in ucs2_strnlen()
Patch series "lib/ucs2_string.c: fix out-of-bounds read in
ucs2_strnlen()", v2.
This series fixes an off-by-one out-of-bounds read in ucs2_strnlen().
The first patch is the real fix, the second patch comes as a bonus and
fixes the code indentation.
This patch (of 2):
ucs2_strnlen() checks the current character before checking whether the
caller-provided maximum length has been reached. If the input is not
NUL-terminated within that bound, the loop can read one ucs2_char_t past
the limit.
Test the length before dereferencing to prevent an off-by-one
out-of-bounds read.
📍 영향받는 시스템
Linux Kernel (ucs2_string.c 라이브러리 포함 버전)
⚔️ 공격 벡터
NUL 종료 문자가 없는 특수하게 조작된 UCS2 문자열을 커널 함수에 전달하여 발생
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 패치된 버전인지 보안 공지(Security Advisory)와 대조