🇰🇷 한글 설명
Linux 커널의 accel/ivpu 드라이버에서 발생하는 TOCTOU(Time-of-Check to Time-of-Use) 취약점입니다. NPU 펌웨어가 공유 메모리에 저장된 로그 헤더 크기 정보를 검증 직후에 변경할 수 있어, 호스트 시스템이 잘못된 메모리 주소를 참조하게 만듭니다.
💡 쉬운 설명
컴퓨터의 뇌 역할을 하는 부품이 데이터를 검사한 직후에 내용을 몰래 바꿔치기하여 시스템을 혼란에 빠뜨리는 문제입니다. 이로 인해 시스템이 잘못된 메모리 영역을 읽으려다 오류가 발생하거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
accel/ivpu: Validate firmware log buffer metadata
The tracing log headers parsed by fw_log_print_buffer() reside in
DMA-shared BOs that the NPU firmware can write to.
fw_log_from_bo() validated log->header_size and log->size, but
fw_log_print_buffer() re-read those same fields from shared memory
afterwards, allowing a TOCTOU where firmware changes them between the
check and the use, and making the host dereference out-of-bounds
addresses while printing logs.
Snapshot the validated values once with READ_ONCE() and pass them down
explicitly in a new struct ivpu_fw_log_desc instead of re-reading them
from the shared struct.
📍 영향받는 시스템
Linux kernel (accel/ivpu driver component)
⚔️ 공격 벡터
악의적인 NPU 펌웨어가 DMA 공유 메모리 내의 로그 메타데이터를 검증과 사용 사이의 시점에 조작함
🛡️ 대응 방법
커널 패치를 통해 검증된 값을 READ_ONCE()로 스냅샷하여 재사용하도록 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인