CVE-2026-89566 in Linux
요약
\~에 의해 VulDB • 2026. 09. 12.
리눅스 커널에서 다음 취약점이 해결되었습니다:
jbd2: 지루한 체크포인트 버퍼를 건너뛸 때 need_resched() 확인
journal_shrink_one_cp_list()는 JBD2_SHRINK_BUSY_SKIP과 함께 호출될 때 지루한(checkpoint) 버퍼들을 건너뜁니다. 이 경로에서의 continue 문은 루프 본문 끝부분에 있는 need_resched() 체크도 건너뛰게 됩니다.
결과적으로, 체크포인트 목록이 주로 지러운(buffered) 버퍼들로 구성되어 있을 경우, shrinker는 리스케줄(reschedule) 요청이 있더라도 journal->j_list_lock을 유지한 채로 전체 목록을 순회할 수 있습니다. 따라서 메모리 압박 하에 있는 큰 크기의 체크포인트 목록은 긴 잠금 보유 시간(lock hold times)을 유발하고 다른 CPU들이 j_list_lock에서 스피닝(spining)하게 되어 소프트 록업(soft lockups) 또는 RCU 정지(RCU stalls)를 초래할 수 있습니다.
지러운 버퍼 경로를 need_resched() 체크로 라우팅하여 shrinker가 j_list_lock을 즉시 해제하고 리스케줄할 수 있도록 하여, 이미 need_resched()를 확인하는 클린-버퍼 경로와 동등성을 복원합니다. 이는 제거 대상이 되는 체크포인트 버퍼의 범위를 변경하지 않습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.