🇰🇷 한글 설명
리눅스 커널의 tty hvc_iucv 드라이버에서 지원 가능한 장치 개수를 처리할 때 발생하는 오프바이원(off-by-one) 오류입니다. 장치 개수가 최대치인 8일 때, 경계 검사 로직의 불일치로 인해 배열의 범위를 벗어난 인덱스인 8에 접근하여 시스템 오류를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터가 장치 개수를 셀 때 숫자를 하나 잘못 계산하여, 허용된 저장 공간의 범위를 살짝 벗어나는 문제가 있습니다. 이로 인해 시스템이 갑자기 멈추거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tty: hvc_iucv: fix off-by-one in number of supported devices
MAX_HVC_IUCV_LINES == HVC_ALLOC_TTY_ADAPTERS == 8.
This is the number of entries in:
static struct hvc_iucv_private *hvc_iucv_table[MAX_HVC_IUCV_LINES];
Sometimes hvc_iucv_table[] is limited by:
(a) if (num > hvc_iucv_devices) // for error detection
or
(b) for (i = 0; i < hvc_iucv_devices; i++) // in 2 places
(so these 2 don't agree; second one appears to be correct to me.)
hvc_iucv_devices can be 0..8. This is a counter.
(c) if (hvc_iucv_devices > MAX_HVC_IUCV_LINES)
If hvc_iucv_devices == 8, (a) allows the code to access hvc_iucv_table[8].
Oops.
📍 영향받는 시스템
hvc_iucv 드라이버를 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
로컬 공격자가 특정 조건에서 장치 개수를 최대치로 설정하여 커널 메모리 경계 외 영역에 접근 유도
🛡️ 대응 방법
해당 취약점이 수정된 최신 리눅스 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 취약점이 해결된 최신 패치 버전인지 확인