🇰🇷 한글 설명
Linux 커널의 SCSI 타겟 tcm_loop 드라이버에서 tcm_loop_setup_hba_bus() 함수 실행 중 device_register() 실패 시 dev_set_name()으로 할당된 이름 메모리가 해제되지 않는 누수 문제가 수정되었습니다. 오류 경로에서 put_device()를 호출하도록 변경하여 kobject_cleanup()에서 이름이 정상적으로 해제되도록 했습니다.
💡 쉬운 설명
커널 내부에서 장치 이름을 위해 잡아 둔 메모리가 오류 상황에서 반환되지 않던 문제입니다. 반복적으로 발생하면 시스템 메모리가 조금씩 낭비될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: target: tcm_loop: Fix possible name leak in tcm_loop_setup_hba_bus()
If device_register() fails in tcm_loop_setup_hba_bus(), the name allocated
by dev_set_name() need be freed. As comment of device_register() says, it
should use put_device() to give up the reference in the error path. So fix
this by calling put_device(), then the name can be freed in kobject_cleanup().
The 'tl_hba' will be freed in tcm_loop_release_adapter(), so it don't need
goto error label in this case.
📍 영향받는 시스템
수정 이전의 Linux 커널 (SCSI tcm_loop 타겟 드라이버를 사용하는 환경)
⚔️ 공격 벡터
로컬 권한이 있는 사용자가 장치 등록 실패를 유도해 메모리를 누적 소모시키는 방식의 서비스 거부(DoS)가 가능하며, 원격 공격 경로는 확인되지 않음
🛡️ 대응 방법
배포판 벤더가 제공하는 최신 커널 보안 업데이트를 적용하여 재부팅
🔧 검증 코드
출력된 커널 버전이 배포판에서 이 수정이 포함된 패치 버전 이상인지 벤더 보안 공지와 대조하여 확인하며, tcm_loop 모듈 사용 여부는 lsmod | grep tcm_loop 으로 추가 확인 가능