🔍 CVE-2025-21731

7.8
CVSS Score
HIGH
2025-02-27
2026-10-15 02:17
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 NBD(Network Block Device) 드라이버에서 연결 해제 후 재연결을 허용하여 발생하는 Use-After-Free(UAF) 취약점입니다. 특정 프로세스 순서에 따라 이미 해제된 메모리 영역에 접근하게 되어 시스템 불안정성이나 권한 상승을 초래할 수 있습니다.

💡 쉬운 설명

네트워크를 통해 저장 장치를 연결하는 기능에서, 연결이 끊겼는데도 다시 연결을 시도하는 과정 중에 메모리 관리 오류가 발생합니다. 이 오류를 이용하면 해커가 컴퓨터의 제어권을 뺏으려 시도할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: nbd: don't allow reconnect after disconnect Following process can cause nbd_config UAF: 1) grab nbd_config temporarily; 2) nbd_genl_disconnect() flush all recv_work() and release the initial reference: nbd_genl_disconnect nbd_disconnect_and_put nbd_disconnect flush_workqueue(nbd->recv_workq) if (test_and_clear_bit(NBD_RT_HAS_CONFIG_REF, ...)) nbd_config_put -> due to step 1), reference is still not zero 3) nbd_genl_reconfigure() queue recv_work() again; nbd_genl_reconfigure config = nbd_get_config_unlocked(nbd) if (!config) -> succeed if (!test_bit(NBD_RT_BOUND, ...)) -> succeed nbd_reconnect_socket queue_work(nbd->recv_workq, &args->work) 4) step 1) release the reference; 5) Finially, recv_work() will trigger UAF: recv_work nbd_config_put(nbd) -> nbd_config is freed atomic_dec(&config->recv_threads) -> UAF Fix the problem by clearing NBD_RT_BOUND in nbd_genl_disconnect(), so that nbd_genl_reconfigure() will fail.

📍 영향받는 시스템

NBD(Network Block Device) 모듈을 사용하는 리눅스 커널 버전

⚔️ 공격 벡터

로컬 또는 네트워크를 통해 NBD 연결 해제와 재설정(reconfigure) 과정을 정밀하게 조작하여 메모리 오류 유도

🛡️ 대응 방법

NBD 연결 해제 시 NBD_RT_BOUND 비트를 초기화하도록 커널 패치를 적용하거나 최신 커널로 업데이트

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 최신 보안 패치 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel