🔍 CVE-2026-53320

5.5
CVSS Score
MEDIUM
2026-06-26
2026-07-06 20:12
✅ 완료

🇰🇷 한글 설명

Linux 커널의 NILFS2 파일 시스템에서 nilfs_ioctl_mark_blocks_dirty() 함수가 잘못된 ioctl 요청을 처리할 때 발생하는 취약점입니다. bd_oblocknr 값이 0인 경우 데드 블록 체크를 우회하여 존재하지 않는 블록에 대해 nilfs_bmap_mark()를 호출하게 되며, 이로 인해 커널 경고(WARN_ON)가 발생합니다.

💡 쉬운 설명

파일 시스템의 특정 기능을 수행할 때 잘못된 번호를 입력하면 시스템이 혼란을 겪어 오류 경고를 발생시키는 문제입니다. 이는 시스템의 안정성을 해칠 수 있는 논리적 결함입니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: nilfs2: reject zero bd_oblocknr in nilfs_ioctl_mark_blocks_dirty() nilfs_ioctl_mark_blocks_dirty() uses bd_oblocknr to detect dead blocks by comparing it with the current block number bd_blocknr. If they differ, the block is considered dead and skipped. However, bd_oblocknr should never be 0 since block 0 typically stores the primary superblock and is never a valid GC target block. A corrupted ioctl request with bd_oblocknr set to 0 causes the comparison to incorrectly match when the lookup returns -ENOENT and sets bd_blocknr to 0, bypassing the dead block check and calling nilfs_bmap_mark() on a non-existent block. This causes nilfs_btree_do_lookup() to return -ENOENT, triggering the WARN_ON(ret == -ENOENT). Fix this by rejecting ioctl requests with bd_oblocknr set to 0 at the beginning of each iteration. [ryusuke: slightly modified the commit message and comments for accuracy]

📍 영향받는 시스템

NILFS2 파일 시스템을 사용하는 Linux 커널 버전

⚔️ 공격 벡터

조작된 bd_oblocknr(0) 값을 포함한 ioctl 요청을 통해 발생

🛡️ 대응 방법

ioctl 요청 시 bd_oblocknr이 0인 경우 이를 거부하도록 커널 패치 적용

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel