CVE-2026-89654 in Linuxthông tin

Tóm tắt

Bởi VulDB • 12/09/2026

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

ceph: sửa lỗi Use-After-Free (UAF) trong hàm check_new_map() khi phiên làm việc bị giải phóng trong quá trình khóa/mở khóa.

Hàm `check_new_map()` lặp qua mảng `mdsc->sessions[]` và đối với mỗi phiên đang hoạt động, nó mở khóa (`mutex_unlock`) mdsc->mutex để thực hiện các thao tác trên từng phiên. Đường dẫn đóng buộc (rank bị xóa khỏi bản đồ) đã đúng khi lấy một tham chiếu đến s thông qua `ceph_get_mds_session()` trước khi giải phóng mdsc->mutex, nhưng ba đường dẫn khác thì không:

Đường A (địa chỉ thay đổi): mutex_unlock → mutex_lock(&s->s_mutex) Đường B (kết nối lại): mutex_unlock → send_mds_reconnect(mdsc, s) Đường C (chuyển sang trạng thái active): mutex_unlock → mutex_lock(&s->s_mutex)

Nếu không có tham chiếu bổ sung này, một luồng khác có thể chiếm mdsc->mutex trong khoảng thời gian mở khóa, gọi `__unregister_session()`, làm giảm tham chiếu cuối cùng trên s và giải phóng nó. Sau đó, luồng ban đầu truy cập vào bộ nhớ đã bị giải phóng thông qua s->s_mutex.

Cách sửa: thêm `ceph_get_mds_session(s)` trước mỗi lệnh mutex_unlock và `ceph_put_mds_session(s)` sau lệnh mutex_lock tương ứng, để khớp với mẫu đã được sử dụng trong đường dẫn đóng buộc.

Dòng thời gian Race Condition (Đường A):

Luồng A (check_new_map) Luồng B (cập nhật bản đồ khác giữ mdsc->mutex hoặc tháo gỡ phiên làm việc) -------------------------- -------------------------- s = mdsc->sessions[i]
(refcount == 1, chỉ được giữ bởi mảng sessions[])

mutex_unlock(&mdsc->mutex) ---> chiếm mdsc->mutex __unregister_session(mdsc, s) sessions[i] = NULL
ceph_put_mds_session(s) refcount: 1 -> 0 kfree(s) <--- đã được giải phóng!

mutex_lock(&s->s_mutex) UAF trên s->s_mutex đã bị giải phóng

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

chịu trách nhiệm

Linux

Đặt trước

11/09/2026

Tiết lộ

12/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

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!