CVE-2023-52849 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 28.

리눅스 커널에서 다음 취약점이 해결되었습니다:

cxl/mem: 종료 순서 수정

Ira는 cxl_mock_mem을 제거하면 다음 트레이스(trace)와 함께 크래시가 발생한다고 보고했습니다:

BUG: kernel NULL pointer dereference, address: 0000000000000044 [..]
RIP: 0010:cxl_region_decode_reset+0x7f/0x180 [cxl_core]
[..]
Call Trace: cxl_region_detach+0xe8/0x210 [cxl_core]
cxl_decoder_kill_region+0x27/0x40 [cxl_core]
cxld_unregister+0x29/0x40 [cxl_core]
devres_release_all+0xb8/0x110 device_unbind_cleanup+0xe/0x70 device_release_driver_internal+0x1d2/0x210 bus_remove_device+0xd7/0x150 device_del+0x155/0x3e0 device_unregister+0x13/0x60 devm_release_action+0x4d/0x90 ? __pfx_unregister_port+0x10/0x10 [cxl_core]
delete_endpoint+0x121/0x130 [cxl_core]
devres_release_all+0xb8/0x110 device_unbind_cleanup+0xe/0x70 device_release_driver_internal+0x1d2/0x210 bus_remove_device+0xd7/0x150 device_del+0x155/0x3e0 ? lock_release+0x142/0x290 cdev_device_del+0x15/0x50 cxl_memdev_unregister+0x54/0x70 [cxl_core]

이 크래시는 서브시스템이 작업을 완료하기 전에 cxl_memdev의 드라이버 컨텍스트(@cxlds)가 초기화되어 발생합니다. 이는 궁극적으로 이 memdev가 속한 리전(region)들이 해제되면서 @cxlds를 역참조(de-reference)할 수 있다고 기대하기 때문에 발생합니다. 여기에서 그 예시를 볼 수 있습니다:

static int cxl_region_decode_reset(struct cxl_region *cxlr, int count) ... if (cxlds->rcd) goto endpoint_reset; ...

해결책은 memdev-device의 unregister 작업이 완료되고, 관련 의존성 스택 전체가 해제(unwinds)될 때까지 드라이버 컨텍스트를 유효하게 유지하는 것입니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!