🔍 CVE-2026-80662

7.1
CVSS Score
HIGH
2026-08-28
2026-10-21 13:19
✅ 완료

🇰🇷 한글 설명

Linux 커널의 CXL(Compute Express Link) 구현에서 RAS Capability 구조체의 헤더 로그 크기가 실제 하드웨어 크기보다 8배 크게 정의되어 발생하는 취약점입니다. 이로 인해 커널 스택의 데이터가 448바이트만큼 초과 읽혀져 tracefs를 통해 사용자 공간으로 유출될 수 있습니다.

💡 쉬운 설명

컴퓨터 부품 간의 통신 규격 설정 오류로 인해, 시스템의 중요한 내부 정보가 외부로 유출될 수 있는 보안 결함입니다. 실제 크기보다 훨씬 큰 범위를 읽어들이면서 메모리에 남아있던 민감한 데이터가 함께 노출될 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: cxl: Fix CXL_HEADERLOG_SIZE to match RAS Capability size The CXL r4.0 8.2.4.17.7 RAS Capability Structure has total length 0x58 bytes (CXL_RAS_CAPABILITY_LENGTH); the Header Log occupies the trailing 64 bytes at offset 0x18. CXL_HEADERLOG_SIZE was defined as SZ_512, eight times the actual on-device size. header_log_copy() reads CXL_HEADERLOG_SIZE_U32 (128) dwords from the RAS capability iomap, overrunning the 88-byte mapping by 448 bytes. The cxl_aer_uncorrectable_error trace event memcpy()s CXL_HEADERLOG_SIZE (512) bytes from its source. For the CPER caller the source is struct cxl_ras_capability_regs::header_log[16] (64 bytes) embedded in a stack-local cxl_cper_prot_err_work_data, so the memcpy reads 448 bytes of kernel stack into the trace event ring buffer where userspace can read it via tracefs. Set CXL_HEADERLOG_SIZE to 64 and derive CXL_HEADERLOG_SIZE_U32 from it, bringing all iomap readers into agreement on 16 dwords. Userspace tools such as rasdaemon have grown a dependency on the buggy 512-byte (128 u32) header_log layout in the cxl_aer_uncorrectable_error trace event. Add CXL_HEADERLOG_TRACE_SIZE_U32 = 128 and use it for the trace event __array and its memcpy to preserve that ABI. Both callers now pass a zero-filled u32[CXL_HEADERLOG_TRACE_SIZE_U32] staging buffer with only the first CXL_HEADERLOG_SIZE_U32 (16) entries populated from hardware; the remaining 112 u32s are zero-padded, keeping the 512-byte trace ring buffer layout intact. [ dj: Replaced 64 with SZ_64 per RichardC ]

📍 영향받는 시스템

CXL 기능을 사용하는 Linux 커널 (RAS Capability 구조체 관련 모듈)

⚔️ 공격 벡터

tracefs를 통해 커널 스택의 메모리 내용을 읽어내는 정보 유출 공격

🛡️ 대응 방법

CXL_HEADERLOG_SIZE를 64로 수정하고, ABI 호환성을 위해 trace 이벤트의 레이아웃을 조정하는 최신 커널 패치 적용

🔧 검증 코드

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

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:N/A:H

💻 영향받는 소프트웨어

Linux Kernel