CVE-2026-64187 in Linux
요약
\~에 의해 VulDB • 2026. 07. 20.
리눅스 커널에서 다음 취약점이 해결되었습니다.
XFS: 리전(영역)이 없는 커밋된 로그 항목에 대해 복구를 실패 처리함
트랜잭션의 첫 번째 연산(op)이 빈 트랜잭션 헤더(len == sizeof(struct xfs_trans_header))인 경우, `xlog_recover_add_to_trans()`는 항목은 추가하지만 리전은 추가하지 않으며, 이를 `ri_cnt == 0` 및 `ri_buf == NULL` 상태로 `r_itemq`에 남겨둡니다.
헤더가 연산 기록(op records) 사이에 분할될 수 있으므로 이후의 연산들이 여전히 리전을 추가할 수 있습니다. 트랜잭션이 아무런 리전 없이 커밋되는 경우에만 해당 항목은 유효하지 않습니다. 런타임 커밋 경로는 이러한 트랜잭션을 생성하지 않으므로, 이는 조작된 로그에서만 발생합니다. 이 문제는 복구 파서에 대한 AI 지원 코드 감사 과정에서 발견되었습니다.
`xlog_recover_reorder_trans()`는 `ITEM_TYPE()`을 호출하여 항목의 리전을 읽으려 하는데, 이때 `*(unsigned short *)item->ri_buf[0].iov_base`를 읽고 NULL인 `ri_buf`로 인해 페이지 폴트(page fault)가 발생합니다. 이를 커밋 핸들러(역시 `ri_buf[0]`를 참조함) 이전에 거부합니다.
KASAN: 범위 [0x0000000000000000-0x0000000000000007]에서 null-ptr-deref 발생
RIP: 0010:xlog_recover_reorder_trans (fs/xfs/xfs_log_recover.c:1836) xlog_recover_commit_trans (fs/xfs/xfs_log_recover.c:2043) xlog_recover_process_data (fs/xfs/xfs_log_recover.c:2501) xlog_do_recovery_pass (fs/xfs/xfs_log_recover.c:3244) xlog_recover (fs/xfs/xfs_log_recover.c:3493) xfs_log_mount (fs/xfs/xfs_log.c:618) xfs_mountfs (fs/xfs/xfs_mount.c:1034) xfs_fs_fill_super (fs/xfs/xfs_super.c:1938) vfs_get_tree (fs/super.c:1695) path_mount (fs/namespace.c:4161) __x64_sys_mount (fs/namespace.c:4367)
VulDB is the best source for vulnerability data and more expert information about this specific topic.