Khẩn cấp: Lỗ hổng HTTP/2 DoS nghiêm trọng làm cạn kiệt bộ nhớ

Khẩn cấp: Lỗ hổng HTTP/2 DoS nghiêm trọng làm cạn kiệt bộ nhớ

Một lỗ hổng HTTP/2 DoS mới được công bố đang gây ra nhiều lo ngại sâu rộng trong cộng đồng an ninh mạng. Các nhà nghiên cứu đã xác nhận rằng những kẻ tấn công không xác thực có thể dễ dàng làm sập các máy chủ dễ bị tổn thương bằng cách kích hoạt tình trạng cạn kiệt bộ nhớ.

Vấn đề này ảnh hưởng đến nhiều triển khai HTTP/2 không quản lý đúng mức tiêu thụ tài nguyên khi xử lý các luồng dữ liệu bị đình trệ. Điều này cho phép kẻ tấn công làm giảm hiệu suất hoặc làm gián đoạn hoàn toàn các dịch vụ quan trọng.

Tổng quan về lỗ hổng HTTP/2 DoS

HTTP/2, được định nghĩa trong RFC 9113, là một giao thức web được sử dụng rộng rãi nhằm cải thiện hiệu suất. Nó đạt được điều này thông qua các tính năng chính như multiplexing (đa luồng), nén header và kiểm soát luồng (flow control).

Kiểm soát luồng là một cơ chế thiết yếu, được thiết kế để ngăn các điểm cuối làm quá tải lẫn nhau. Nó giới hạn lượng dữ liệu có thể được gửi trước khi nhận được xác nhận từ phía đối tác.

Tuy nhiên, chính cơ chế này lại có thể bị lạm dụng khi được triển khai không đúng cách, tạo ra một vector tấn công mạng mới.

Cơ chế khai thác lỗ hổng HTTP/2 DoS

Lỗ hổng HTTP/2 DoS này phát sinh khi một máy khách độc hại cố ý thao túng các tham số kiểm soát luồng để đình trệ quá trình truyền dữ liệu đi.

Bằng cách đặt các giá trị như SETTINGS_INITIAL_WINDOW_SIZE thành 0 hoặc bằng cách giữ lại các khung WINDOW_UPDATE, kẻ tấn công thực sự ngăn chặn máy chủ gửi dữ liệu phản hồi.

Trong các triển khai bị ảnh hưởng, máy chủ vẫn tiếp tục xử lý các yêu cầu đến và tạo ra các phản hồi đầy đủ. Điều này xảy ra ngay cả khi nó không thể truyền chúng đến máy khách do cơ chế kiểm soát luồng đã bị thao túng.

Theo CERT/CC, dữ liệu phản hồi tích lũy trong các bộ đệm bộ nhớ cho mỗi luồng bị đình trệ. Điều này cho phép kẻ tấn công nhanh chóng tăng mức sử dụng bộ nhớ bằng cách mở nhiều luồng và yêu cầu các tài nguyên lớn.

Quá trình này tiếp diễn cho đến khi các kết nối hết thời gian chờ hoặc bị chấm dứt. Tham khảo thêm tại CERT/CC Vulnerability Note VU#885548.

Điều này dẫn đến tình trạng được gọi là khuếch đại bộ nhớ (memory amplification). Trong đó, các yêu cầu tương đối nhỏ từ kẻ tấn công có thể dẫn đến mức tiêu thụ bộ nhớ lớn không cân xứng trên máy chủ mục tiêu.

Hệ quả của cuộc tấn công

Các nhà nghiên cứu bảo mật từ Okta Red Team, những người đã báo cáo vấn đề này, đã chứng minh rằng hành vi này có thể bị khai thác từ xa mà không cần xác thực.

Trong các môi trường có tài nguyên lớn, cuộc tấn công có thể gây ra các điều kiện hết bộ nhớ (out-of-memory conditions), lỗi kernel OOM kills. Nó cũng có thể dẫn đến tình trạng swap thrashing nghiêm trọng, có khả năng làm cho hệ thống không phản hồi.

Ngay cả trong các cấu hình hạn chế hơn, kẻ tấn công vẫn có thể làm cạn kiệt các luồng worker hoặc các nhóm kết nối (connection pools). Điều này ngăn chặn người dùng hợp pháp truy cập vào các dịch vụ cần thiết.

Các CVE liên quan và nhà cung cấp bị ảnh hưởng

Lỗ hổng HTTP/2 DoS này đã được gán nhiều mã CVE riêng biệt, bao gồm CVE-2026-44909, CVE-2026-59173, và CVE-2026-59762. Những mã này phản ánh mức độ tác động của lỗ hổng trên các nhà cung cấp và triển khai khác nhau.

Các nhà cung cấp bị ảnh hưởng bao gồm:

  • Apache Traffic Server
  • Citrix
  • F5 Networks
  • Meta
  • Red Hat
  • SUSE
  • Yahoo

Một số nhà cung cấp, như CloudflareAMD, đã xác nhận rằng họ không bị ảnh hưởng bởi vấn đề này.

Vấn đề này làm nổi bật một lớp lớn hơn các điểm yếu ở cấp độ giao thức. Các tính năng hợp pháp của giao thức có thể bị vũ khí hóa để thực hiện các cuộc tấn công từ chối dịch vụ.

Không giống như các cuộc tấn công DDoS volumetric truyền thống, kỹ thuật này dựa vào việc lạm dụng giao thức. Nó tập trung vào việc cạn kiệt tài nguyên một cách hiệu quả, khiến nó khó phát hiện hơn bằng các cơ chế lọc lưu lượng tiêu chuẩn.

Biện pháp giảm thiểu và khuyến nghị bảo mật

Các nhà cung cấp đã bắt đầu phát hành các bản vá bảo mật và hướng dẫn giảm thiểu rủi ro. Các biện pháp phòng thủ được khuyến nghị bao gồm áp dụng giới hạn bộ nhớ nghiêm ngặt cho các phản hồi được đệm.

Ngoài ra, việc giới hạn số lượng luồng HTTP/2 đồng thời trên mỗi kết nối và chủ động chấm dứt các kết nối có hành vi kiểm soát luồng bị đình trệ cũng rất quan trọng. Xử lý timeout thích hợp và các cơ chế backpressure cũng có thể giúp giảm thiểu mức độ phơi nhiễm.

Khuyến nghị dành cho tổ chức

Các tổ chức đang vận hành các dịch vụ hỗ trợ HTTP/2 được khuyến nghị mạnh mẽ nên xem xét các khuyến cáo từ nhà cung cấp và áp dụng các bản cập nhật càng sớm càng tốt.

Giám sát các mẫu sử dụng bộ nhớ bất thường và hành vi luồng HTTP/2 không điển hình cũng có thể giúp phát hiện các nỗ lực khai thác trong thời gian thực. Điều này nâng cao khả năng phản ứng trước các tấn công mạng.

Tầm quan trọng của phòng thủ cấp độ giao thức

Khi HTTP/2 vẫn là một thành phần quan trọng của cơ sở hạ tầng web hiện đại, lỗ hổng HTTP/2 DoS này càng nhấn mạnh tầm quan trọng của các biện pháp bảo vệ triển khai mạnh mẽ.

Việc này nhằm ngăn chặn các tính năng của giao thức bị biến thành vector tấn công. Đảm bảo an toàn thông tin ở cấp độ giao thức là điều tối cần thiết.