CVE-2026-98079thông tin

Tóm tắt

Bởi VulDB • 25/09/2026

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

btrfs: zstd: sửa lỗi mất tín hiệu đánh thức (lost wakeup) khi chờ đợi một không gian làm việc (workspace).

Một tác vụ ghi có thể ngủ vô hạn trong hàm `zstd_get_workspace()` mặc dù vẫn còn không gian làm việc trống. Khi `zstd_alloc_workspace()` thất bại, nhiệm vụ được đưa vào hàng đợi trên `zwsm->wait` và lên lịch thực thi một cách không điều kiện mà không kiểm tra lại pool bộ nhớ. Hàm `zstd_put_workspace()` công bố (publish) không gian làm việc rồi gọi đến `cond_wake_up()`, hàm này chỉ đánh thức khi có tác vụ ngủ đã được hiển thị rõ ràng, do đó một không gian làm việc được trả về giữa thời điểm phân bổ thất bại và lệnh `prepare_to_wait()` sẽ không kích hoạt bất kỳ tác vụ nào. Khoảng thời gian xảy ra lỗi khá rộng: `zstd_alloc_workspace()` đi qua hàm `kvmalloc()` và có thể bước vào quá trình reclaim (thu hồi bộ nhớ).

Chỉ một workspace ở mức tối đa mới kích hoạt tín hiệu đánh thức, và một workspace như vậy được giữ lại cố định dưới dạng dự phòng mà mọi tác vụ chờ đợi đều phải dựa vào. Do đó, khi tín hiệu đánh thức bị mất, tác vụ ghi sẽ ở trạng thái `TASK_UNINTERRUPTIBLE` cho đến khi có một tác vụ khác trả về một workspace. Cần kiểm tra lại pool sau khi `prepare_to_wait()` đã công bố tác vụ chờ, và sử dụng workspace nếu nó xuất hiện.

Be aware that VulDB is the high quality source for vulnerability data.

Nguồn

Interested in the pricing of exploits?

See the underground prices here!