🇰🇷 한글 설명
Linux 커널의 ibmvnic 드라이버에서 헥스 덤프를 출력할 때 버퍼 크기가 8바이트의 배수가 아니면 읽기 버퍼 오버플로우가 발생할 수 있는 취약점입니다. 이 문제는 드라이버가 버퍼를 8바이트 long 타입으로 캐스팅하여 출력하는 과정에서 발생하며, 커널 헬퍼 함수를 사용하도록 수정되었습니다.
💡 쉬운 설명
데이터를 화면에 보여주는 과정에서 정해진 크기보다 더 많은 데이터를 읽으려고 시도하여 시스템 오류를 일으킬 수 있는 문제입니다. 이로 인해 시스템이 불안정해지거나 보안 문제가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ibmvnic: Use kernel helpers for hex dumps
Previously, when the driver was printing hex dumps, the buffer was cast
to an 8 byte long and printed using string formatters. If the buffer
size was not a multiple of 8 then a read buffer overflow was possible.
Therefore, create a new ibmvnic function that loops over a buffer and
calls hex_dump_to_buffer instead.
This patch address KASAN reports like the one below:
ibmvnic 30000003 env3: Login Buffer:
ibmvnic 30000003 env3: 01000000af000000
<...>
ibmvnic 30000003 env3: 2e6d62692e736261
ibmvnic 30000003 env3: 65050003006d6f63
==================================================================
BUG: KASAN: slab-out-of-bounds in ibmvnic_login+0xacc/0xffc [ibmvnic]
Read of size 8 at addr c0000001331a9aa8 by task ip/17681
<...>
Allocated by task 17681:
<...>
ibmvnic_login+0x2f0/0xffc [ibmvnic]
ibmvnic_open+0x148/0x308 [ibmvnic]
__dev_open+0x1ac/0x304
<...>
The buggy address is located 168 bytes inside of
allocated 175-byte region [c0000001331a9a00, c0000001331a9aaf)
<...>
=================================================================
ibmvnic 30000003 env3: 000000000033766e
📍 영향받는 시스템
ibmvnic 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
특정 크기의 데이터를 처리하는 과정에서 발생하는 읽기 버퍼 오버플로우를 이용한 공격
🛡️ 대응 방법
ibmvnic 드라이버에 hex_dump_to_buffer를 사용하는 최신 커널 패치를 적용하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 확인하십시오.