🇰🇷 한글 설명
Linux 커널의 jbd2 구성 요소 내 jbd2_journal_initialize_fast_commit() 함수에서 정수 언더플로우 취약점이 발견되었습니다. num_fc_blks가 j_last보다 클 경우 뺄셈 연산 시 값이 매우 커지면서 경계 검사를 우회하게 됩니다. 이로 인해 저널 데이터가 손상되어 저널 중단(journal abort) 현상이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 계산을 할 때 숫자가 너무 작아지면 갑자기 엄청나게 큰 숫자로 변하는 오류가 발생했습니다. 이 오류 때문에 시스템의 기록 장치가 망가져서 데이터 저장 기능이 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
jbd2: fix integer underflow in jbd2_journal_initialize_fast_commit()
jbd2_journal_initialize_fast_commit() validates journal capacity by
checking (journal->j_last - num_fc_blks < JBD2_MIN_JOURNAL_BLOCKS).
Both j_last and num_fc_blks are unsigned, so when num_fc_blks exceeds
j_last the subtraction wraps to a large value, bypassing the bounds
check.
The resulting underflow corrupts j_last, j_fc_first, and j_free,
leading to journal abort.
Fix by checking num_fc_blks against j_last before the subtraction,
returning -EFSCORRUPTED.
📍 영향받는 시스템
Linux Kernel (jbd2 파일 시스템 구성 요소 포함 버전)
⚔️ 공격 벡터
조작된 저널 블록 데이터를 통해 정수 언더플로우를 유발하여 시스템 저널 중단 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인