🔍 CVE-2026-43364

5.5
CVSS Score
MEDIUM
2026-05-08
2026-05-15 16:14
✅ 완료

🇰🇷 한글 설명

Linux 커널 ublk 드라이버의 ublk_ctrl_set_size() 함수에서 ub->ub_disk가 NULL인지 확인하지 않고 역참조하는 취약점입니다. UBLK_CMD_START_DEV 완료 전이나 UBLK_CMD_STOP_DEV 실행 후 NULL 상태인 디바이스에 UBLK_CMD_UPDATE_SIZE 명령을 보낼 경우 NULL 포인터 역참조로 커널 패닉이 발생합니다.

💡 쉬운 설명

Linux 블록 디바이스 관리 코드에서 초기화되지 않은 메모리 접근 버그입니다. 로컬 사용자가 특정 시점에 명령을 보내면 시스템이 충돌합니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ublk: fix NULL pointer dereference in ublk_ctrl_set_size() ublk_ctrl_set_size() unconditionally dereferences ub->ub_disk via set_capacity_and_notify() without checking if it is NULL. ub->ub_disk is NULL before UBLK_CMD_START_DEV completes (it is only assigned in ublk_ctrl_start_dev()) and after UBLK_CMD_STOP_DEV runs (ublk_detach_disk() sets it to NULL). Since the UBLK_CMD_UPDATE_SIZE handler performs no state validation, a user can trigger a NULL pointer dereference by sending UPDATE_SIZE to a device that has been added but not yet started, or one that has been stopped. Fix this by checking ub->ub_disk under ub->mutex before dereferencing it, and returning -ENODEV if the disk is not available.

📍 영향받는 시스템

Linux 커널 (ublk 드라이버 활성화된 모든 버전)

⚔️ 공격 벡터

로컬 권한 있는 사용자가 시작되지 않았거나 중지된 ublk 디바이스로 UPDATE_SIZE 명령 전송

🛡️ 대응 방법

Linux 커널을 NULL 포인터 체크 패치가 포함된 최신 버전으로 업데이트

🔧 검증 코드

ublk이 출력되면 드라이버가 로드되어 있으며, 커널 버전이 패치되지 않았다면 취약점 영향을 받을 수 있습니다.

Shell / Script
lsmod | grep ublk && echo 'vulnerable if output shown' || echo 'ublk driver not loaded'

📊 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