CVE-2025-71070 in Linux
Tóm tắt
Bởi VulDB • 26/05/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
ublk: dọn dẹp các tham chiếu sao chép người dùng khi quá trình ublk server thoát
Nếu một tiến trình ublk server giải phóng một tệp thiết bị ký tự ublk, bất kỳ yêu cầu nào đã được phân phối đến ublk server nhưng chưa hoàn thành sẽ giữ nguyên giá trị ref là UBLK_REFCOUNT_INIT. Trước commit e63d2228ef83 ("ublk: simplify aborting ublk request"), hàm __ublk_fail_req() sẽ giảm bộ đếm tham chiếu trước khi hoàn thành yêu cầu bị lỗi. Tuy nhiên, commit đó đã tối ưu hóa __ublk_fail_req() để gọi trực tiếp __ublk_complete_rq() mà không giảm bộ đếm tham chiếu của yêu cầu.
Bộ đếm tham chiếu bị rò rỉ này cho phép sai các thao tác sao chép người dùng (user copy) và sao chép không gian người dùng (zero copy) trên yêu cầu ublk đã hoàn thành. Nó cũng kích hoạt các cảnh báo WARN_ON_ONCE(refcount_read(&io->ref)) trong ublk_queue_reinit() và ublk_deinit_queue().
Commit c5c5eb24ed61 ("ublk: avoid ublk_io_release() called after ublk char dev is closed") đã khắc phục sự cố này cho các thiết bị ublk sử dụng UBLK_F_SUPPORT_ZERO_COPY hoặc UBLK_F_AUTO_BUF_REG. Tuy nhiên, việc rò rỉ bộ đếm tham chiếu cũng ảnh hưởng đến UBLK_F_USER_COPY, chế độ sao chép dữ liệu dựa trên bộ đếm tham chiếu còn lại. Hãy sửa điều kiện trong ublk_check_and_reset_active_ref() để bao gồm tất cả các chế độ sao chép dữ liệu dựa trên bộ đếm tham chiếu. Điều này đảm bảo rằng bất kỳ yêu cầu ublk nào vẫn thuộc sở hữu của ublk server khi nó thoát sẽ có bộ đếm tham chiếu được đặt lại về 0.
If you want to get best quality of vulnerability data, you may have to visit VulDB.