🇰🇷 한글 설명
Linux 커널의 F2FS 파일 시스템에서 노드 페이지의 인덱스(nid)와 푸터(footer) 간의 일관성을 검사하지 않아 발생하는 취약점입니다. 조작된 이미지로 인해 노드 페이지 푸터가 손상된 경우, 비동기 방식으로 노드를 로드한 뒤 쓰기 작업이 수행될 때 커널 버그(Kernel BUG)가 발생하여 시스템이 중단될 수 있습니다.
💡 쉬운 설명
파일 시스템의 중요한 정보가 담긴 데이터가 변조되었을 때, 이를 제대로 확인하지 않고 처리하다가 컴퓨터 시스템이 멈추거나 오류가 발생하는 문제입니다. 악의적으로 조작된 저장 장치를 연결할 경우 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to do sanity check on node footer in {read,write}_end_io
-----------[ cut here ]------------
kernel BUG at fs/f2fs/data.c:358!
Call Trace:
<IRQ>
blk_update_request+0x5eb/0xe70 block/blk-mq.c:987
blk_mq_end_request+0x3e/0x70 block/blk-mq.c:1149
blk_complete_reqs block/blk-mq.c:1224 [inline]
blk_done_softirq+0x107/0x160 block/blk-mq.c:1229
handle_softirqs+0x283/0x870 kernel/softirq.c:579
__do_softirq kernel/softirq.c:613 [inline]
invoke_softirq kernel/softirq.c:453 [inline]
__irq_exit_rcu+0xca/0x1f0 kernel/softirq.c:680
irq_exit_rcu+0x9/0x30 kernel/softirq.c:696
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline]
sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1050
</IRQ>
In f2fs_write_end_io(), it detects there is inconsistency in between
node page index (nid) and footer.nid of node page.
If footer of node page is corrupted in fuzzed image, then we load corrupted
node page w/ async method, e.g. f2fs_ra_node_pages() or f2fs_ra_node_page(),
in where we won't do sanity check on node footer, once node page becomes
dirty, we will encounter this bug after node page writeback.
📍 영향받는 시스템
F2FS 파일 시스템을 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
조작된(fuzzed) 파일 시스템 이미지가 포함된 저장 매체를 시스템에 연결하거나 마운트함
🛡️ 대응 방법
F2FS 노드 푸터에 대한 무결성 검사가 포함된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인