CVE-2026-31465 in Linux
요약
\~에 의해 VulDB • 2026. 05. 26.
리눅스 커널에서 다음 취약점이 해결되었습니다:
writeback: 데이터 무결성 보장이 없는 파일시스템에 대해 동기화(sync)를 차단하지 않음
데이터 동기화 시 데이터 지속성을 보장할 수 없는 파일시스템(예: fuse)을 위해 SB_I_NO_DATA_INTEGRITY 슈퍼블록 플래그를 추가합니다. 이 플래그가 설정된 슈퍼블록의 경우, 동기화 작업은 더티(inode)의 writeback을 시작하지만 flusher 스레드가 writeback을 완료할 때까지 대기하지 않습니다.
이 변경은 커밋 f9a49aa302a0("fs/writeback: skip AS_NO_DATA_INTEGRITY mappings in wait_sb_inodes()")에서 추가된 per-inode AS_NO_DATA_INTEGRITY 매핑 플래그를 대체합니다. 데이터 무결성은 인스턴스별(inode-level) 속성이 아닌 파일시스템 전체의 속성이므로, 해당 플래그는 슈퍼블록 레벨에 속해야 합니다. 또한 슈퍼블록 레벨에 플래그를 두면 wait_sb_inodes()에서 각 더티 inode를 개별적으로 건너뛰기 위해 모든 더티 inode를 반복적으로 순회할 필요가 없어집니다.
이 커밋 이전에는 데이터 무결성 보장이 없는 매핑의 경우 writeback 완료 대기 스킵은 수행되었지만, flusher 스레드가 writeback 시작을 완료할 때까지는 대기했습니다. flusher 스레드를 대기하는 것은 불필요합니다. 이 커밋은 writeback을 시작하지만 flusher 스레드를 대기하지 않습니다. 이 변경은 flusher 스레드의 완료 대기 때문에 발생한 fuse-overlayfs에서의 suspend-to-RAM 정지(hang) 문제를 보고한 최근 사례 [1]을 적절히 해결합니다:
Workqueue: pm_fs_sync pm_fs_sync_work_fn Call Trace: __schedule+0x457/0x1720 schedule+0x27/0xd0 wb_wait_for_completion+0x97/0xe0 sync_inodes_sb+0xf8/0x2e0 __iterate_supers+0xdc/0x160 ksys_sync+0x43/0xb0 pm_fs_sync_work_fn+0x17/0xa0 process_one_work+0x193/0x350 worker_thread+0x1a1/0x310 kthread+0xfc/0x240 ret_from_fork+0x243/0x280 ret_from_fork_asm+0x1a/0x30
fuse에서 이는 문제가 될 수 있습니다. systemd가 커널 서스펜드를 호출하기 전에 먼저 사용자 세션 cgroup을 동결시켜 fuse 데몬을 동결시키는 등의 경로가 존재할 경우, flusher 스레드가 차단될 수 있기 때문입니다. 커널 서스펜드는 ->write_node()를 트리거하며, fuse에서는 이것이 동기 setattr 요청을 발생시킵니다. 데몬이 동결되어 있으므로 이 요청은 처리될 수 없습니다. 또는 데몬에 결함이 있어 writeback을 적절히 완료하지 못하는 경우, 이미 writeback 중인 더티 folio에 대해 writeback을 시작하면 writeback_get_folio() -> folio_prepare_writeback() -> writeback 완료를 위한 무조건적 대기(unconditional wait)로 이어져 정지(hang)가 발생할 수 있습니다. 이 커밋은 tmp folio가 제거되기 전의 fuse 이전 동작으로 복원하며, 당시에는 동기화(sync)가 본질적으로 no-op(무효 작업)이었습니다.
[1] https://lore.kernel.org/linux-fsdevel/CAJnrk1a-asuvfrbKXbEwwDSctvemF+6zfhdnuzO65Pt8HsFSRw@mail.gmail.com/T/#m632c4648e9cafc4239299887109ebd880ac6c5c1
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.