🇰🇷 한글 설명
Linux 커널의 jbd2 구성 요소에서 체크포인트 버퍼를 검사할 때 스캔 예산(scan budget)을 제대로 반영하지 못하는 취약점이 해결되었습니다. 이로 인해 바쁜 버퍼가 포함된 대규모 체크포인트 목록을 스캔할 경우 j_list_lock을 과도하게 점유하여 소프트 락업(soft lockup)이나 RCU 스톨을 유발할 수 있었습니다.
💡 쉬운 설명
시스템이 파일 데이터를 정리하는 과정에서 특정 작업이 너무 오래 걸려 컴퓨터가 일시적으로 멈추거나 느려질 수 있는 문제입니다. 이번 업데이트를 통해 정리 작업의 범위를 제한하여 시스템이 멈추는 현상을 방지했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
jbd2: bound shrinker scans by examined checkpoint buffers
The jbd2 shrinker currently accounts only checkpoint buffers that it
successfully releases against nr_to_scan. Busy buffers therefore do not
consume the scan budget.
If a checkpoint transaction contains mostly busy buffers, the shrinker
can scan its entire checkpoint list while holding journal->j_list_lock.
Large checkpoint lists can result in excessive lock hold times and leave
other CPUs spinning on j_list_lock, causing soft lockups or RCU stalls.
Pass nr_to_scan into journal_shrink_one_cp_list() and decrement it for
every buffer examined, including busy buffers. Pass NULL from checkpoint
cleanup paths so their existing full-list behavior is preserved.
This restores the scan-budget semantics that existed before
journal_shrink_one_cp_list() was changed to always scan a complete
checkpoint list.
📍 영향받는 시스템
Linux kernel (jbd2 구성 요소가 포함된 버전)
⚔️ 공격 벡터
로컬 시스템에서 대규모 체크포인트 트랜잭션을 유도하여 커널 락(lock) 점유를 통한 서비스 거부(DoS) 유발
🛡️ 대응 방법
jbd2 스캔 예산 로직이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인