🔍 CVE-2022-48890

5.5
CVSS Score
MEDIUM
2024-08-21
2026-06-17 05:16
✅ 완료

🇰🇷 한글 설명

Linux 커널의 storvsc 드라이버에서 Confidential VM 사용 시 swiotlb 바운스 버퍼 메모리 누수가 발생하는 취약점입니다. I/O 제출 실패 시 할당된 버퍼를 해제하지 않아, 지속적인 I/O 부하 상황에서 메모리가 고갈되어 결국 I/O 작업이 불가능해질 수 있습니다.

💡 쉬운 설명

데이터를 주고받기 위해 임시로 빌려 쓰는 메모리 공간을 사용 후 제대로 돌려주지 않는 버그입니다. 이 현상이 반복되면 컴퓨터의 메모리가 가득 차서 더 이상 데이터를 읽거나 쓸 수 없게 됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: scsi: storvsc: Fix swiotlb bounce buffer leak in confidential VM storvsc_queuecommand() maps the scatter/gather list using scsi_dma_map(), which in a confidential VM allocates swiotlb bounce buffers. If the I/O submission fails in storvsc_do_io(), the I/O is typically retried by higher level code, but the bounce buffer memory is never freed. The mostly like cause of I/O submission failure is a full VMBus channel ring buffer, which is not uncommon under high I/O loads. Eventually enough bounce buffer memory leaks that the confidential VM can't do any I/O. The same problem can arise in a non-confidential VM with kernel boot parameter swiotlb=force. Fix this by doing scsi_dma_unmap() in the case of an I/O submission error, which frees the bounce buffer memory.

📍 영향받는 시스템

Linux kernel (storvsc driver, Confidential VM or swiotlb=force enabled)

⚔️ 공격 벡터

직접적인 공격보다는 높은 I/O 부하를 유발하여 시스템 자원을 고갈시키는 DoS(서비스 거부) 형태로 발생 가능

🛡️ 대응 방법

I/O 제출 오류 발생 시 scsi_dma_unmap()를 호출하여 메모리를 해제하도록 수정된 최신 Linux 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 패치된 버전인지 배포판 보안 권고문을 통해 확인

Shell / Script
uname -r

📊 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