🇰🇷 한글 설명
Linux 커널의 vdpa_sim 모듈에서 워커 스레드 생성 실패 시 정리 과정 중 발생하는 취약점입니다. 초기화 실패 시 잘못된 포인터(ERR_PTR)를 참조하여 일반 보호 오류(General Protection Fault)를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 특정 기능을 만들다가 오류가 났을 때, 뒷정리를 제대로 하지 못해 시스템이 갑자기 멈추거나 충돌할 수 있는 문제입니다. 잘못된 메모리 주소를 건드려 발생하는 오류입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
vdpa_sim: fix cleanup after worker creation failure
vdpasim_create() leaves vdpasim->worker as an ERR_PTR when
kthread_run_worker() fails. The error path then drops the device
reference, which releases the partially initialized simulator.
vdpasim_free() unconditionally passes the worker pointer to
kthread_destroy_worker(), so the ERR_PTR is dereferenced and can trigger
a general protection fault.
Store the worker error, clear the pointer, and only clean up the worker
when it was successfully initialized. Also make the release path tolerate
partially initialized objects by guarding virtqueue and IOTLB cleanup,
since the same release path can be reached from other initialization
failures.
I found this bug myself, though the patch was written with AI assistance.
📍 영향받는 시스템
vdpa_sim 모듈을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
커널 내 워커 스레드 생성 실패를 유도하여 시스템 충돌(DoS) 유발
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 패치된 최신 버전인지 확인