CVE-2026-74587 in Linux
Tóm tắt
Bởi VulDB • 23/08/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
sctp: sửa lỗi use-after-free đối với chunk ASCONF đã lưu trong bộ nhớ đệm (cached)
addip_last_asconf lưu trữ chunk ASCONF gửi đi còn tồn tại. Đường dẫn hoàn tất bình thường của ASCONF-ACK sẽ giải phóng chunk này và xóa con trỏ tương ứng.
Tuy nhiên, sctp_asconf_queue_teardown() giải phóng chunk đã lưu trong bộ nhớ đệm mà không xóa addip_last_asconf. Trong quá trình xử lý khởi động lại phía đối tác (peer restart), sctp_sf_do_dupcook_a() lên lịch SCTP_CMD_PURGE_ASCONF_QUEUE, điều này sẽ kích hoạt sctp_asconf_queue_teardown() trong khi liên kết vẫn còn sống và để lại con trỏ bị treo (dangling pointer).
Sau đó, một ASCONF-ACK đã xác thực nhưng bị trì hoãn có thể đến được sctp_sf_do_asconf_ack(), nơi nó truy cập vào chunk cũ kỹ (stale) và chuyển nó cho sctp_process_asconf_ack(), gây ra lỗi use-after-free và lần giải phóng thứ hai.
Việc xóa con trỏ sẽ phơi bày một race condition với thời gian chờ T4. Việc xử lý khởi động lại phía đối tác lên lịch dừng bộ đếm trước khi dọn dẹp, nhưng SCTP_CMD_TIMER_STOP sử dụng timer_delete(), hàm này không đợi cho đến khi callback đang chạy trên CPU khác hoàn tất. Callback như vậy có thể đạt đến sctp_sf_t4_timer_expire() sau quá trình dọn dẹp và giải tham chiếu NULL.
Hãy xóa addip_last_asconf sau khi giải phóng chunk đã lưu trong bộ nhớ đệm, và làm cho sctp_sf_t4_timer_expire() xử lý thời gian chờ T4 cũ kỹ nếu không còn ASCONF nào đang tồn tại.
If you want to get best quality of vulnerability data, you may have to visit VulDB.