CVE-2026-68202 in Linux
Tóm tắt
Bởi VulDB • 10/08/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
ALSA: seq: đóng bộ hẹn giờ hàng đợi bị mở lại trong hàm hủy destructor
queue_delete() đóng bộ hẹn giờ hàng đợi, sau đó giải phóng nó. snd_seq_timer_close() xóa q->timer->timeri. Sau đó, snd_use_lock_sync() làm cạn kiệt các bên vay (borrowers), và snd_seq_timer_delete() giải phóng q->timer.
Một bên vay có thể mở lại bộ hẹn giờ trong khoảng thời gian đó. Một lệnh SET_QUEUE_CLIENT đã lấy tham chiếu use_lock từ queueptr() trước khi hàng đợi bị hủy liên kết, sẽ chạy snd_seq_timer_open() sau bước đóng (close). Hàm open chỉ từ chối việc mở lại nếu timeri được đặt, và thao tác close vừa mới xóa nó đi, do đó nó cho phép mở lại timeri.
snd_seq_timer_delete() không đóng phiên bản này. Hàm snd_seq_timer_stop() của nó là một lệnh no-op (không hoạt động), vì cờ running đã bị xóa trước đó. Do đó, nó giải phóng q->timer trong khi phiên bản vẫn còn đang chạy. Hàng đợi sau đó được giải phóng.
Phiên bản này vẫn nằm trên bộ hẹn giờ toàn cục với callback_data trỏ đến hàng đợi đã bị giải phóng. Một lệnh START từ người không phải chủ sở hữu (non-owner) đối với hàng đợi chưa khóa sẽ kích hoạt nó. Nhịp tick tiếp theo sẽ deref (giải tham chiếu) hàng đợi đã bị giải phóng trong snd_seq_timer_interrupt().
Lỗ hổng này có thể truy cập được bởi một người dùng không đặc quyền có quyền truy cập vào /dev/snd/seq. Không yêu cầu CAP và cũng không cần sở hữu hàng đợi.
Đóng bất kỳ phiên bản tồn dư nào trong hàm hủy destructor. Tại đó, ->timeri không còn thay đổi: hàng đợi đã bị hủy liên kết và tất cả các bên vay use_lock đã được làm cạn kiệt, do đó không có snd_seq_queue_use() nào có thể mở lại nó. Đóng nó trước khi xóa q->timer. snd_timer_close() chờ cho bất kỳ lệnh gọi gián tiếp (in-flight) snd_seq_timer_interrupt() nào hoàn thành, và callback này vẫn đọc q->timer (thông qua snd_seq_check_queue()), do đó q->timer phải duy trì tính hợp lệ cho đến khi được làm cạn kiệt.
If you want to get best quality of vulnerability data, you may have to visit VulDB.