🇰🇷 한글 설명
Linux 커널의 rtsx_pci MMC 드라이버에서 mmc_add_host() 함수의 반환값을 확인하지 않아 발생하는 취약점입니다. 호스트 추가가 실패해도 mmc_alloc_host()로 할당된 메모리가 해제되지 않아 메모리 누수가 발생하며, 제거 경로에서 추가되지 않은 장치를 삭제하려다 커널 충돌이 일어날 수 있습니다. 수정 방향은 반환값을 검사하고 오류 시 mmc_free_host() 호출 및 런타임 PM 비활성화를 수행하는 것입니다.
💡 쉬운 설명
카드 리더 드라이버가 장치 등록 실패를 확인하지 않아 메모리가 새어 나가고, 나중에 시스템이 멈출 수 있습니다. 커널 업데이트로 등록 실패 시 정리 작업이 추가되어 해결됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mmc: rtsx_pci: fix return value check of mmc_add_host()
mmc_add_host() may return error, if we ignore its return value, the memory
that allocated in mmc_alloc_host() will be leaked and it will lead a kernel
crash because of deleting not added device in the remove path.
So fix this by checking the return value and calling mmc_free_host() in the
error path, beside, runtime PM also needs be disabled.
📍 영향받는 시스템
rtsx_pci MMC 드라이버를 포함한 수정 이전 Linux 커널 버전 (Realtek 카드 리더 사용 시스템)
⚔️ 공격 벡터
로컬 사용자 또는 하드웨어 오류 상황에서 장치 초기화가 실패할 때 메모리 누수 및 커널 불안정을 유발하며, 원격 공격 경로는 확인되지 않음
🛡️ 대응 방법
배포판의 최신 Linux 커널 보안 업데이트를 적용하여 mmc_add_host() 반환값 검사 패치를 포함한 버전으로 재부팅
🔧 검증 코드
출력된 커널 버전이 배포판의 수정된 보안 업데이트 버전 이상인지 확인하고, rtsx_pci 모듈이 로드되지 않았다면 해당 취약점의 영향을 받지 않습니다.
uname -r && (lsmod | grep -E 'rtsx_pci' || echo 'rtsx_pci 모듈 미로드')