🇰🇷 한글 설명
Linux 커널의 ibmvfc 드라이버에서 발생한 취약점으로, 악의적인 VIO 서버가 허용된 범위를 초과하는 값을 반환할 경우 발생합니다. 검증되지 않은 값이 메모리 인덱스로 사용되어 커널 메모리 외부 영역에 접근하게 되며, 이 과정에서 커널 메모리 정보가 유출될 수 있습니다.
💡 쉬운 설명
서버가 예상보다 더 많은 데이터를 보내도록 속여서 컴퓨터의 중요한 비밀 정보가 담긴 메모리 영역을 훔쳐보는 공격입니다. 공격자가 조작된 응답을 보내면 시스템이 잘못된 메모리 위치를 읽게 되어 정보가 새나갈 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: ibmvfc: Fix OOB access in ibmvfc_discover_targets_done()
A malicious or compromised VIO server can return a num_written value in the
discover targets MAD response that exceeds max_targets. This value is
stored directly in vhost->num_targets without validation, and is then used
as the loop bound in ibmvfc_alloc_targets() to index into disc_buf[], which
is only allocated for max_targets entries. Indices at or beyond max_targets
access kernel memory outside the DMA-coherent allocation. The
out-of-bounds data is subsequently embedded in Implicit Logout and PLOGI
MADs that are sent back to the VIO server, leaking kernel memory.
Fix by clamping num_written to max_targets before storing it.
📍 영향받는 시스템
Linux kernel (ibmvfc driver 사용 시스템)
⚔️ 공격 벡터
악의적으로 조작된 VIO 서버로부터의 MAD(Management Access Data) 응답을 통한 메모리 외부 접근
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 num_written 값이 max_targets를 초과하지 않도록 제한해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.