Nghiên cứu mới đã phát hiện ra rằng khung CONTINUATION trong giao thức HTTP / 2 có thể bị khai thác để tiến hành các cuộc tấn công từ chối dịch vụ (DoS).
Kỹ thuật này đã được nhà nghiên cứu bảo mật Bartek Nowotarski đặt tên mã là HTTP/2 CONTINUATION Flood, người đã báo cáo vấn đề này cho Trung tâm Điều phối CERT (CERT/CC) vào ngày 25/1/2024.
"Nhiều triển khai HTTP / 2 không giới hạn hoặc vệ sinh đúng số lượng khung CONTINUATION được gửi trong một luồng duy nhất", CERT / CC cho biết trong một tư vấn vào ngày 3 tháng 4 năm 2024.
"Kẻ tấn công có thể gửi các gói tin đến máy chủ đích có thể gửi một luồng các khung CONTINUATION sẽ không được gắn vào danh sách tiêu đề trong bộ nhớ nhưng vẫn sẽ được máy chủ xử lý và giải mã hoặc sẽ được gắn vào danh sách tiêu đề, gây ra sự cố hết bộ nhớ (OOM)."
Giống như trong HTTP / 1, HTTP / 2 sử dụng các trường tiêu đề trong các yêu cầu và phản hồi. Các trường tiêu đề này có thể bao gồm danh sách tiêu đề, lần lượt, được tuần tự hóa và chia thành các khối tiêu đề. Các khối tiêu đề sau đó được chia thành các đoạn khối và được truyền trong HEADERS hoặc cái được gọi là khung CONTINUATION.
"Khung CONTINUATION (type = 0x9) được sử dụng để tiếp tục một chuỗi các đoạn khối tiêu đề", tài liệu cho RFC 7540 viết.
Lỗ hổng, cốt lõi của nó, liên quan đến việc xử lý không chính xác các HEADERS và nhiều khung CONTINUATION mở đường cho một điều kiện DoS.
Nói cách khác, kẻ tấn công có thể bắt đầu luồng HTTP / 2 mới chống lại máy chủ đích bằng cách sử dụng triển khai dễ bị tổn thương và gửi các khung HEADERS và CONTINUATION mà không có cờ END_HEADERS đặt, tạo ra một luồng tiêu đề không bao giờ kết thúc mà máy chủ HTTP / 2 sẽ cần phân tích cú pháp và lưu trữ trong bộ nhớ.
Mặc dù kết quả chính xác khác nhau tùy thuộc vào việc triển khai, các tác động bao gồm từ sự cố tức thì sau khi gửi một vài khung HTTP / 2 và sự cố hết bộ nhớ đến cạn kiệt CPU, do đó ảnh hưởng đến tính khả dụng của máy chủ.
"RFC 9113 [...] đề cập đến nhiều vấn đề bảo mật có thể phát sinh nếu các khung CONTINUATION không được xử lý đúng cách", Nowotarski nói.
"Đồng thời, nó không đề cập đến một trường hợp cụ thể trong đó các khung CONTINUATION được gửi mà không có cờ END_HEADERS cuối cùng có thể có hậu quả trên các máy chủ bị ảnh hưởng."
Sự cố ảnh hưởng đến một số dự án như amphp/http (CVE-2024-2653), Apache HTTP Server (CVE-2024-27316), Apache Tomcat (CVE-2024-24549), Apache Traffic Server (CVE-2024-31309), Envoy proxy (CVE-2024-27919 và CVE-2024-30255), Golang (CVE-2023-45288), h2 Rust crate, nghttp2 (CVE-2024-28182), Node.js (CVE-2024-27983) và Tempesta FW (CVE-2024-2758).
Người dùng nên nâng cấp phần mềm bị ảnh hưởng lên phiên bản mới nhất để giảm thiểu các mối đe dọa tiềm ẩn. Trong trường hợp không có bản sửa lỗi, bạn nên xem xét tạm thời vô hiệu hóa HTTP / 2 trên máy chủ.
Thuê DDoS server game và website của đối thủ với mạng Botnet Faghost