🇰🇷 한글 설명
Linux 커널의 F2FS 파일 시스템에서 f2fs_fsync_node_pages() 함수 호출 중 레이스 컨디션으로 인해 무한 루프가 발생할 수 있는 취약점입니다. 특정 상황에서 노드 페이지의 매핑 정보가 유실되면서 조건문이 항상 참이 되어 시스템이 멈출 수 있습니다.
💡 쉬운 설명
파일을 저장하는 과정에서 두 가지 작업이 동시에 충돌하면 컴퓨터가 무한 반복 작업에 빠져 멈춰버릴 수 있는 문제입니다. 이로 인해 시스템이 응답하지 않는 상태가 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to avoid potential deadloop in f2fs_fsync_node_pages()
There is potential deadloop in race condition:
Thread A Thread B
- fsync
- f2fs_do_sync_file
- f2fs_fsync_node_pages
- last_fsync_dnode
- folio_get(last_folio)
- f2fs_setattr
- f2fs_truncate
- f2fs_truncate_blocks
- f2fs_do_truncate_blocks
- f2fs_truncate_inode_blocks
- truncate_dnode
- truncate_node
- invalidate_mapping_pages
- folio->mapping = NULL
- is_node_folio alwasy return false
- atomic && !marked is always true,
then goto retry
📍 영향받는 시스템
F2FS 파일 시스템을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 시스템에서 특정 파일 시스템 작업(fsync 및 truncate)을 동시에 수행하여 레이스 컨디션 유도
🛡️ 대응 방법
F2FS 관련 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.