🇰🇷 한글 설명
Linux 커널의 CXL mbox 구성 요소에서 발생한 취약점으로, 장치가 데이터가 없음에도 계속된 데이터가 있다는 플래그를 보낼 경우 무한 루프에 빠지는 문제입니다. 이로 인해 poison_mutex를 점유한 상태로 시스템이 멈추며, 이후 모든 독성(poison) 관련 작업이 차단됩니다.
💡 쉬운 설명
고장 나거나 악의적인 장치가 '데이터가 더 있다'고 거짓말을 하면 컴퓨터가 끝없는 반복 작업에 빠져 멈춰버리는 문제입니다. 이로 인해 해당 장치와 관련된 시스템 기능이 마비될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
cxl/mbox: Break poison list loop on an empty payload
A device that returns count == 0 with CXL_POISON_FLAG_MORE set on every
iteration never advances nr_records, so the max_errors guard never
trips and the do/while loops forever while holding poison.mutex. That
hangs the sysfs-triggered scan thread and blocks all subsequent poison
operations on the device. The existing "Protect against an uncleared
_FLAG_MORE" guard was intended to bound a misbehaving device but does
not cover the count == 0 case.
Stop the loop on an empty payload so a malfunctioning or malicious
device cannot wedge the poison scan.
📍 영향받는 시스템
CXL(Compute Express Link) 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
악의적으로 조작된 CXL 장치가 데이터 개수를 0으로 보고하면서 지속적으로 '더 있음' 플래그를 전송하여 무한 루프 유도
🛡️ 대응 방법
CXL mbox 관련 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인