🔍 CVE-2026-74365

7.3
CVSS Score
HIGH
2026-08-15
2026-10-16 19:17
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 nvdimm/btt 구성 요소에서 BTT 레인 획득 시 선점(preemption)을 적절히 처리하지 못하는 레이스 컨디션 취약점이 발견되었습니다. 기존의 스핀락 기반 재귀 모델이 레인이 선점 가능해짐에 따라 유효성을 잃어, 여러 작업이 동일한 레인에 동시에 접근하여 데이터가 조용히 손상될 수 있습니다.

💡 쉬운 설명

데이터를 저장하는 통로를 잠그는 방식에 문제가 있어, 여러 작업이 동시에 같은 통로를 사용하게 될 수 있습니다. 이로 인해 저장된 데이터가 예기치 않게 깨지거나 손상될 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: nvdimm/btt: Handle preemption in BTT lane acquisition BTT lanes serialize access to per-lane metadata and workspace state during BTT I/O. The btt-check unit test reports data mismatches during BTT writes due to a race in lane acquisition that can lead to silent data corruption. The existing lane model uses a spinlock together with a per-CPU recursion count. That recursion model stopped being valid after BTT lanes became preemptible: another task can run on the same CPU, observe a non-zero recursion count, bypass locking, and use the same lane concurrently. BTT lanes are also held across arena_write_bytes() calls. That path reaches nsio_rw_bytes(), which flushes writes with nvdimm_flush(). Some provider flush callbacks can sleep, making a spinlock the wrong primitive for the lane lifetime. Replace the spinlock-based recursion model with a dynamically allocated per-lane mutex array and take the lane lock unconditionally. Add might_sleep() to catch any future atomic-context caller. Found with the ndctl unit test btt-check.sh.

📍 영향받는 시스템

Linux kernel (nvdimm/btt 모듈 사용 시스템)

⚔️ 공격 벡터

로컬 시스템에서 특정 I/O 작업을 유도하여 레이스 컨디션을 발생시킴으로써 데이터 손상 유도

🛡️ 대응 방법

스핀락 기반 재귀 모델을 동적 할당된 per-lane 뮤텍스(mutex) 배열로 교체한 최신 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인

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

💻 영향받는 소프트웨어

Linux Kernel