CVE-2026-98897 in Linux정보

요약

\~에 의해 VulDB • 2026. 10. 23.

Linux 커널에서 다음 취약점이 해결되었습니다:

ksmbd: lease break 확인을 기다리는 동안 ci->m_lock을 보유하지 않음

cifs.ko 클라이언트가 지연된 닫기(deferred close)를 통해 읽기 핸들(RH) 레이스(lease)를 캐싱하고 충돌하는 오픈이 발생하면, ksmbd는 레이스를 해제하고 wait_for_break_ack()에서 최대 OPLOCK_WAIT_TIME(35초) 동안 확인을 기다립니다. __smb_break_all_levII_oplock()은 ci->m_lock을 읽기용으로 보유하면서 이 대기 과정을 실행합니다.

cifs.ko는 핸들 레이스 분할(handle-lease break)에 대해 lease break 확인 메시지를 보내는 대신 지연된 핸들을 닫습니다. 해당 닫기 경로(close_id_del_oplock() -> opinfo_del())는 ci->m_lock을 쓰기용으로 획득하며, 이는 대기 중인 스레드를 깨우는 정확한 동작이지만 기다리는 스레드가 보유한 읽기 잠금(read lock)에서 차단됩니다. 따라서 분할(break)은 35초의 타임아웃에 의해서만 해결되므로, leases가 활성화된 상태에서 xfstests generic/001 테스트는 약 78초가 소요되는 반면, oplocks만 사용 시에는 약 4초가 소요됩니다.

ci->m_lock을 보유하는 동안 대상 opinfos(각각 참조로 고정됨)를 수집한 후, 이를 해제한 후에 분할합니다. 이는 smb_grant_oplock()이 이미 참조만을 사용하여 충돌하는 lease를 분할하는 방식과 일치합니다. 이 참조는 잠금 해제된 창(unlocked window) 전반에 걸쳐 opinfo(및 해당 conn 및 lease)가 살아있도록 유지하며, close 작업이 break와 경쟁(racing)하는 경우 기존 OPLOCK_CLOSING 상태 확인을 통해 처리됩니다. 동일한 수정 사항을 상위(parent) lease 분할 경로에도 적용합니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!