CVE-2026-31452 in Linux
요약
\~에 의해 VulDB • 2026. 05. 28.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ext4: 트렁크 연산이 인라인 크기를 초과할 때 인라인 데이터를 익스텐트로 변환
truncate()가 파일 크기를 인라인 용량보다 크게 확장할 때, ext4_setattr() 내에서 인라인 데이터 저장소에서 익스텐트 기반 저장소로 파일을 변환하는 확인 절차를 추가합니다. 이를 통해 인라인 데이터 플래그가 설정되어 있지만 파일 크기가 인라인으로 저장할 수 있는 용량을 초과하는 일관성 없는 파일시스템 상태로 진입하는 것을 방지합니다.
이 수정 사항이 없으면 다음 시퀀스가 커널 BUG_ON()을 유발합니다:
1. 인라인 플래그가 설정되고 크기가 작은 인노드를 포함하여 파일시스템 마운트 2. truncate(file, 50MB) 수행 - 크기가 증가하지만 인라인 플래그는 설정된 상태로 유지 3. sendfile()이 데이터 쓰기 시도 4. ext4_write_inline_data()가 BUG_ON(write_size > inline_capacity) 조건에 도달
크래시는 ext4_write_inline_data()가 인라인 저장소에 쓰기를 수용할 것으로 기대하지만, 실제 인라인 용량(i_block당 약 60바이트, xattrs당 약 96바이트)이 파일 크기와 쓰기 요청보다 훨씬 작기 때문에 발생합니다.
해당 수정 사항은 setattr에서 반환된 새 크기가 인노드의 실제 인라인 용량(EXT4_I(inode)->i_inline_size)을 초과하는지 확인하고, 크기 변경을 진행하기 전에 파일을 익스텐트 기반 저장소로 변환합니다.
이를 통해 트렁크 연산 중 인라인 데이터 플래그와 파일 크기가 일관되게 유지되도록 하여 근본 원인을 해결합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.