🔍 CVE-2026-74274

0.0
CVSS Score
UNKNOWN
2026-08-15
2026-08-17 06:19
✅ 완료

🇰🇷 한글 설명

Linux 커널의 CXL(Compute Express Link) 드라이버에서 자동 탐색 중 타겟 배열 내에 NULL 포인터 구멍(hole)이 발생하는 취약점입니다. 이로 인해 NULL 포인터 참조로 인한 시스템 오류(General Protection Fault)가 발생하거나, 유효한 엔드포인트 디코더 개수를 잘못 계산하는 문제가 발생할 수 있습니다.

💡 쉬운 설명

컴퓨터 부품을 연결하는 과정에서 빈 자리를 제대로 채우지 못해 시스템이 갑자기 멈추거나 오류가 발생하는 문제입니다. 빈 공간을 건너뛰지 않고 차곡차곡 채우도록 수정하여 이 문제를 해결했습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: cxl/region: Fill first free targets[] slot during auto-discovery Any invalid endpoint decoder pointer in the target array of an active region is not allowed by cxl driver. This means cxl driver always assumes the first p->nr_targets entries of the target array in an auto-assembly region are valid. However, there are scenarios that could leave NULL endpoint decoder pointer holes in the target array. 1. When cxl_cancel_auto_attach() removes an endpoint decoder from a target array, the target slot is set to NULL. If the removed endpoint decoder is not the last element in the target array, the target array will contain a NULL hole. 2. When a auto-assembly region removes an assigned endpoint decoder, if the removed endpoint decoder is not the last element in the target array, always remains a NULL hole in the target array. When a NULL pointer hole exists in a region's target array, it introduces two potential problems: 1. Access an endpoint decoder via a NULL pointer. it always trigger calltrace like that. Oops: general protection fault, probably for non-canonical address 0xdffffc0000000008: 0000 [#1] SMP KASAN PTI RIP: 0010:cxl_calc_interleave_pos+0x26/0x810 [cxl_core] Call Trace: <TASK> cxl_region_attach+0xc50/0x2140 [cxl_core] cxl_add_to_region+0x321/0x2330 [cxl_core] discover_region+0x92/0x150 [cxl_port] device_for_each_child+0xf3/0x170 cxl_port_probe+0x150/0x200 [cxl_port] cxl_bus_probe+0x4f/0xa0 [cxl_core] really_probe+0x1c8/0x960 __driver_probe_device+0x323/0x450 driver_probe_device+0x45/0x120 __device_attach_driver+0x15d/0x280 bus_for_each_drv+0x10f/0x190 2. Not having enough valid endpoint decoders attached to an auto-assembly region. if an auto-assembly region is created with lock flag or assigned endpoint decoder with lock flag, which means assigned endpoint decoder will not be reset during detaching, they could re-attach to the auto-assembly region again. But cxl region driver relies on p->nr_targets to verify whether the required number of endpoint decoders has been attached, and NULL endpoint decoder pointers are still counted in that case. To fix above issues, adjust cxl_region_attach_auto() logic to find the first free target slot for endpoint decoder attachment, this ensures NULL holes in the target array are filled, rather than adding new endpoint decoders at the tail of the target array.

📍 영향받는 시스템

Linux kernel (CXL driver components)

⚔️ 공격 벡터

로컬 공격자가 CXL 장치의 자동 연결/해제 시나리오를 조작하여 커널 패닉을 유도할 수 있음

🛡️ 대응 방법

CXL 드라이버를 최신 커널 버전으로 업데이트하여 cxl_region_attach_auto() 로직을 적용해야 함

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 패치된 최신 릴리스 버전인지 확인하십시오.

Shell / Script
uname -r

💻 영향받는 소프트웨어

IBM Security Verify Access