🇰🇷 한글 설명
Linux 커널의 F2FS 파일 시스템에서 다중 장치 이미지를 마운트할 때 읽기 전용(RO) 상태를 올바르게 확인하지 못하는 취약점입니다. 보조 장치 중 하나가 읽기 전용으로 설정된 상태에서 쓰기 모드로 재마운트를 시도할 경우 커널 패닉이 발생할 수 있습니다.
💡 쉬운 설명
여러 개의 저장 장치를 하나로 묶어 사용할 때, 일부 장치가 읽기 전용인데도 쓰기 모드로 작동하려고 시도하여 시스템이 멈추는 문제입니다. 이로 인해 시스템이 갑자기 꺼지거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to check readonly condition correctly
With below case, it can mount multi-device image w/ rw option, however
one of secondary device is set as ro, later update will cause panic, so
let's introduce f2fs_dev_is_readonly(), and check multi-devices rw status
in f2fs_remount() w/ it in order to avoid such inconsistent mount status.
mkfs.f2fs -c /dev/zram1 /dev/zram0 -f
blockdev --setro /dev/zram1
mount -t f2fs dev/zram0 /mnt/f2fs
mount: /mnt/f2fs: WARNING: source write-protected, mounted read-only.
mount -t f2fs -o remount,rw mnt/f2fs
dd if=/dev/zero of=/mnt/f2fs/file bs=1M count=8192
kernel BUG at fs/f2fs/inline.c:258!
RIP: 0010:f2fs_write_inline_data+0x23e/0x2d0 [f2fs]
Call Trace:
f2fs_write_single_data_page+0x26b/0x9f0 [f2fs]
f2fs_write_cache_pages+0x389/0xa60 [f2fs]
__f2fs_write_data_pages+0x26b/0x2d0 [f2fs]
f2fs_write_data_pages+0x2e/0x40 [f2fs]
do_writepages+0xd3/0x1b0
__writeback_single_inode+0x5b/0x420
writeback_sb_inodes+0x236/0x5a0
__writeback_inodes_wb+0x56/0xf0
wb_writeback+0x2a3/0x490
wb_do_writeback+0x2b2/0x330
wb_workfn+0x6a/0x260
process_one_work+0x270/0x5e0
worker_thread+0x52/0x3e0
kthread+0xf4/0x120
ret_from_fork+0x29/0x50
📍 영향받는 시스템
Linux Kernel (F2FS 파일 시스템을 사용하는 시스템)
⚔️ 공격 벡터
읽기 전용 보조 장치를 포함한 다중 장치 F2FS 이미지를 생성한 후, 이를 쓰기 모드로 재마운트 시도
🛡️ 대응 방법
F2FS 관련 패치가 적용된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 보안 권고 사항과 대조합니다.