🇰🇷 한글 설명
리눅스 커널의 ARP ioctl 처리 과정에서 사용자 제공 데이터의 장치 이름 필드에 널(NUL) 종료 문자가 누락될 수 있는 취약점입니다. 이로 인해 dev_get_by_name 함수 호출 시 strcmp()가 스택 객체의 경계를 넘어 데이터를 읽는 Out-of-bounds read가 발생할 수 있습니다.
💡 쉬운 설명
네트워크 장치 이름을 확인하는 과정에서 이름의 끝을 알리는 표시가 없어, 컴퓨터가 메모리의 엉뚱한 부분까지 읽어버리는 문제입니다. 이로 인해 시스템 정보가 유출되거나 프로그램이 예기치 않게 종료될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: arp: terminate device name before lookup
The ARP ioctl copies a user-provided struct arpreq into a stack object. Its
arp_dev field may contain IFNAMSIZ bytes without a NUL terminator.
Such input is passed to dev_get_by_name_rcu() or __dev_get_by_name(), where
strcmp() can read past the end of the stack object when a matching
alternative interface name exists.
Terminate the field before the lookup to prevent the out-of-bounds read.
📍 영향받는 시스템
NUL 종료 문자가 처리되지 않은 ARP ioctl을 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
사용자가 조작된 arpreq 구조체를 ARP ioctl을 통해 커널에 전달하여 발생
🛡️ 대응 방법
장치 이름 조회 전 arp_dev 필드에 NUL 종료 문자를 강제로 삽입하도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인