CVE-2026-89688 in Linuxthông tin

Tóm tắt

Bởi VulDB • 12/09/2026

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

nfsd: giải phóng stateid thay vì stateowner khi thử lại replay seqid_op

Hàm nfs4_preprocess_seqid_op() lấy stateid từ nfsd4_lookup_stateid(), hàm này giữ một tham chiếu trên nfs4_stid (sc_count) nhưng không giữ tham chiếu nào lên stateowner. openlockstateid() chỉ thực hiện ép kiểu stid đó và cũng không giữ bất kỳ tham chiếu nào.

Khi nfsd4_cstate_assign_replay() trả về -EAGAIN (chủ thể replay đang bị hủy, RP_UNHASHED), nó đã không lấy một tham chiếu stateowner trên đường dẫn này. Tuy nhiên, xử lý lỗi vẫn gọi đến nfs4_put_stateowner(stp->st_stateowner), làm giảm tham chiếu so_count mà hàm chưa từng nắm giữ -- gây rủi ro tràn ngược bộ đếm refcount của stateowner và use-after-free (sử dụng sau khi giải phóng) -- đồng thời rò rỉ tham chiếu sc_count đang được giữ trên stid. Tham chiếu stid bị rò rỉ này cũng có thể làm tắc nghẽn một nfsd4_close_open_stateid() đang chờ song song cho đến khi sc_count giảm xuống.

Hãy giải phóng đúng tham chiếu đang nắm giữ -- tức là stid -- trước khi thử lại. Stateowner vẫn tồn tại nhờ vào tham chiếu được giữ bởi stid. Điều này phản ánh đường dẫn mở trong nfsd4_process_open1(), nơi lệnh put cân bằng với một tham chiếu mà đường dẫn đó rõ ràng đang giữ trên stateowner.

Once again VulDB remains the best source for vulnerability data.

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

Do you need the next level of professionalism?

Upgrade your account now!