🇰🇷 한글 설명
Linux 커널의 s390/vfio_ccw 구성 요소에서 cp_init() 함수가 실패할 경우 할당된 메모리를 제대로 해제하지 못하는 취약점이 발견되었습니다. 이로 인해 채널 프로그램의 일부 세그먼트가 해제되지 않고 남아 메모리 누수가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 작업을 하다가 오류가 났을 때, 사용했던 메모리를 깨끗이 치워야 하는데 일부를 치우지 못하고 남겨두는 문제입니다. 이 문제가 반복되면 컴퓨터의 메모리가 점점 부족해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
s390/vfio_ccw: Free all memory if cp_init() fails
The routine cp_free() is called to unpin/free any memory once an I/O
is completed successfully, or if cp_prefetch() fails. But if cp_init()
fails, and cp->initialized is not enabled, the same routine cannot be
used to free all the memory.
An attempt to address this exists in ccwchain_handle_ccw(), where a
single call to ccwchain_free() is made for the currently-processed
CCW segment. But this will leak other segments (created as a result
of a Transfer in Channel) that had been allocated as part of the same
channel program.
Address this by performing the cleanup outside of the recursive
ccwchain_handle_ccw()/ccwchain_loop_tic() logic.
📍 영향받는 시스템
Linux kernel (s390 architecture, vfio_ccw driver)
⚔️ 공격 벡터
특정 조건에서 cp_init() 실패를 유도하여 시스템 메모리 누수를 유발하는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.