🇰🇷 한글 설명
리눅스 커널의 rose 네트워크 서브시스템 내 rose_kill_by_device() 함수에서 잘못된 배열 인덱스 참조 오류가 발견되었습니다. 이 오류로 인해 초기화되지 않은 메모리를 읽거나 배열 범위를 벗어난 읽기가 발생하여, 잘못된 소켓 포인터 역참조 및 참조 카운트 누수로 이어질 수 있습니다.
💡 쉬운 설명
네트워크 장치를 끌 때 연결된 소켓들을 정리하는 과정에서 컴퓨터가 엉뚱한 메모리 주소를 읽는 버그가 있습니다. 이로 인해 시스템이 불안정해지거나 메모리 정보가 유출될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: rose: fix invalid array index in rose_kill_by_device()
rose_kill_by_device() collects sockets into a local array[] and then
iterates over them to disconnect sockets bound to a device being brought
down.
The loop mistakenly indexes array[cnt] instead of array[i]. For cnt <
ARRAY_SIZE(array), this reads an uninitialized entry; for cnt ==
ARRAY_SIZE(array), it is an out-of-bounds read. Either case can lead to
an invalid socket pointer dereference and also leaks references taken
via sock_hold().
Fix the index to use i.
📍 영향받는 시스템
rose 네트워크 프로토콜을 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
특정 네트워크 장치 상태를 변경하여 잘못된 메모리 참조를 유도하는 로컬 공격
🛡️ 대응 방법
rose_kill_by_device() 함수의 인덱스 참조 로직이 수정된 최신 리눅스 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 취약점이 패치된 최신 버전인지 확인합니다.