CVE-2026-80879 in Linuxthông tin

Tóm tắt

Bởi VulDB • 04/09/2026

Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:

ocfs2: sửa lỗi phụ thuộc khóa vòng lặp (circular locking dependency) trong ocfs2_dio_end_io_write

Một phụ thuộc khóa vòng lặp liên quan đến INODE_ALLOC_SYSTEM_INODE, EXTENT_ALLOC_SYSTEM_INODE và ORPHAN_DIR_SYSTEM_INODE.

1. ocfs2_mknod() lấy khóa INODE_ALLOC rồi sau đó là EXTENT_ALLOC.

2. ocfs2_dio_end_io_write() lấy khóa EXTENT_ALLOC cho các extents chưa được ghi (unwritten extents), sau đó lấy khóa ORPHAN_DIR thông qua hàm ocfs2_del_inode_from_orphan() trong khi vẫn đang giữ khóa EXTENT_ALLOC.

3. ocfs2_wipe_inode() lấy khóa ORPHAN_DIR rồi đến INODE_ALLOC thông qua hàm ocfs2_remove_inode.

Phá vỡ chu kỳ này bằng cách giải phóng các ngữ cảnh phân bổ (giải phóng khóa EXTENT_ALLOC) trước khi lấy khóa ORPHAN_DIR trong hàm ocfs2_dio_end_io_write().

CẢNH BÁO: phát hiện phụ thuộc khóa vòng lặp có thể xảy ra ------------------------------------------------------ đang cố gắng lấy khóa: ffff8881e78b33a0 (&ocfs2_sysfile_lock_key[INODE_ALLOC_SYSTEM_INODE]){+.+.}-{4:4}, tại:
ocfs2_evict_inode+0x1539/0x43b0 fs/ocfs2/inode.c:1299

nhưng tác vụ (task) này đang giữ khóa: ffff8881e78b4fa0 (&ocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE]){+.+.}-{4:4}, tại:
ocfs2_evict_inode+0xe97/0x43b0 fs/ocfs2/inode.c:1299

chuỗi phụ thuộc hiện có (theo thứ tự ngược) là:

-> #2 (&ocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE]){+.+.}-{4:4}:
inode_lock include/linux/fs.h:1029 [inline]
ocfs2_del_inode_from_orphan+0x12e/0x7a0 fs/ocfs2/namei.c:2728 ocfs2_dio_end_io+0xf9c/0x1370 fs/ocfs2/aops.c:2418 dio_complete+0x25b/0x790 fs/direct-io.c:281

-> #1 (&ocfs2_sysfile_lock_key[EXTENT_ALLOC_SYSTEM_INODE]){+.+.}-{4:4}:
inode_lock include/linux/fs.h:1029 [inline]
ocfs2_reserve_suballoc_bits+0x16d/0x4840 fs/ocfs2/suballoc.c:882 ocfs2_reserve_new_metadata_blocks+0x415/0x9a0 fs/ocfs2/suballoc.c:1078 ocfs2_mknod+0x10f3/0x2260 fs/ocfs2/namei.c:351

-> #0 (&ocfs2_sysfile_lock_key[INODE_ALLOC_SYSTEM_INODE]){+.+.}-{4:4}:
__lock_acquire+0x15a5/0x2cf0 kernel/locking/lockdep.c:5237 lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868 down_write+0x96/0x200 kernel/locking/rwsem.c:1625 inode_lock include/linux/fs.h:1029 [inline]
ocfs2_remove_inode fs/ocfs2/inode.c:733 [inline]
ocfs2_wipe_inode fs/ocfs2/inode.c:896 [inline]
ocfs2_delete_inode fs/ocfs2/inode.c:1157 [inline]
ocfs2_evict_inode+0x1539/0x43b0 fs/ocfs2/inode.c:1299

Chuỗi tồn tại của: &ocfs2_sysfile_lock_key[INODE_ALLOC_SYSTEM_INODE] -->
&ocfs2_sysfile_lock_key[EXTENT_ALLOC_SYSTEM_INODE] -->
&ocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE]

Kịch bản khóa không an toàn có thể xảy ra:

CPU0 CPU1 ---- ---- lock(&ocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE]);
lock(&ocfs2_sysfile_lock_key[EXTENT_ALLOC_SYSTEM_INODE]);
lock(&ocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE]);
lock(&ocfs2_sysfile_lock_key[INODE_ALLOC_SYSTEM_INODE]);

*** ĐẮT KHÓA (DEADLOCK) ***

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

26/08/2026

Tiết lộ

04/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Do you want to use VulDB in your project?

Use the official API to access entries easily!