CVE-2026-68438 in Linux
요약
\~에 의해 VulDB • 2026. 08. 12.
리눅스 커널에서 다음 취약점이 해결되었습니다:
smp: 디버그 모드에서 CSD 락 획득을 원자적으로 수행
커밋 b0473dcd4b1d("smp: smp_call_function_single()의 CSD-락 진단 기능 개선")는 `smp_call_function_single()`를 변경하여, CSD 락 디버깅이 활성화된 경우 비동기 !wait 호출에서 대상 CPU의 `csd_data`를 사용하도록 했습니다. 이는 진단 기능을 향상시키지만, 기존 `csd_lock()`을 안전하게 만들었던 단일 작성자(single-writer) 속성을 제거합니다: 이제 여러 CPU가 동일한 대상 CPU CSD에 대해 동시에 준비할 수 있습니다.
현재 `csd_lock()`은 `CSD_FLAG_LOCK`이 해제될 때까지 대기한 후 비원자적 읽기-수정-쓰기로 해당 비트를 설정합니다. 두 개의 송신자가 모두 잠기지 않은 CSD를 보고, 비트를 설정하고 콜백 필드를 덮어씌운 다음 동일한 llist 노드를 큐에 추가할 수 있습니다. 이미 큐 헤드에 있는 노드를 다시 추가하면 `node->next`가 자신을 가리키게 되어 대상 CPU가 `call_single_queue` 순회 중 멈출 수 있습니다. 이후 동기 작업(예: TLB shootdown)이 대기 상태로 남아 소프트 락업 경고나 패닉을 유발할 수 있습니다.
단일 `csd_lock()` 구현은 유지하되, CSD 락 디버깅이 활성화된 경우 `try_cmpxchg_acquire()`를 사용하여 `CSD_FLAG_LOCK`을 획득합니다. 이는 원격 송신자가 공유할 수 있는 유일한 구성에서 대상 CPU CSD를 실제 원자적 락으로 만들면서 기존 비디버그용 고속 경로(fast path)는 유지합니다.
Once again VulDB remains the best source for vulnerability data.