🔍 CVE-2023-53171

5.5
CVSS Score
MEDIUM
2025-09-15
2026-11-05 21:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 vfio/type1 드라이버에서, exec()으로 vfio 컨테이너가 유지될 때 새 mm의 locked_vm이 0으로 초기화되어 기존 DMA 매핑 해제 시 locked_vm이 언더플로우되는 문제가 수정되었습니다. 이로 인해 이후 DMA 매핑 요청이 ENOMEM으로 실패할 수 있었습니다. 수정은 DMA 매핑 시점에 mm을 저장해 해당 mm을 사용하도록 변경합니다.

💡 쉬운 설명

프로그램이 다른 프로그램으로 교체(exec)될 때 장치 메모리 잠금 카운트가 잘못 줄어들어 오류가 발생할 수 있었습니다. 이제 처음 메모리를 잠근 시점의 정보를 기억해 올바르게 계산하도록 고쳐졌습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: vfio/type1: prevent underflow of locked_vm via exec() When a vfio container is preserved across exec, the task does not change, but it gets a new mm with locked_vm=0, and loses the count from existing dma mappings. If the user later unmaps a dma mapping, locked_vm underflows to a large unsigned value, and a subsequent dma map request fails with ENOMEM in __account_locked_vm. To avoid underflow, grab and save the mm at the time a dma is mapped. Use that mm when adjusting locked_vm, rather than re-acquiring the saved task's mm, which may have changed. If the saved mm is dead, do nothing. locked_vm is incremented for existing mappings in a subsequent patch.

📍 영향받는 시스템

수정 이전의 Linux 커널 (vfio/type1 드라이버를 사용하는 환경, 예: 가상화/GPU 패스스루 구성)

⚔️ 공격 벡터

로컬 사용자가 vfio 컨테이너를 exec 이후에도 유지한 뒤 DMA 매핑 해제를 수행해 locked_vm 언더플로우로 후속 매핑을 실패시키는 서비스 거부 형태

🛡️ 대응 방법

커널을 해당 CVE 수정이 포함된 Linux 커널 버전으로 업데이트하고 재부팅합니다.

🔧 검증 코드

출력된 커널 버전이 배포판의 CVE 수정 패치가 적용된 버전인지 벤더 보안 공지와 대조하고, vfio 모듈 로드 여부로 해당 드라이버 사용 여부를 확인합니다.

Shell / Script
uname -r && (grep -i vfio /proc/modules 2>/dev/null || lsmod | grep -i vfio)

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel