Lỗ hổng QPACK mới: Nguy cơ làm sập server HTTP/3 với khả năng khuếch đại bộ nhớ gấp 4.000 lần
Các nhà nghiên cứu bảo mật vừa phát hiện lỗ hổng nghiêm trọng trong QPACK, cho phép kẻ tấn công thực hiện tấn công từ chối dịch vụ (DoS) bằng cách khuếch đại bộ nhớ tiêu thụ trên các server...
- Giọng nữ Bắc
Công ty bảo mật FoxIO vừa công bố phát hiện một loạt lỗ hổng trong giao thức QPACK, cơ chế nén header được sử dụng trong HTTP/3. Những lỗ hổng này cho phép kẻ tấn công từ xa, không cần xác thực, có thể làm sập các server HTTP/3 chỉ với một kết nối duy nhất.
Table Of Content
Cơ chế tấn công
Kẻ tấn công có thể gửi một lượng nhỏ dữ liệu header đã nén. Khi server thực hiện giải nén, dữ liệu này sẽ phình to ra trong bộ nhớ với tỷ lệ gấp hàng nghìn lần so với kích thước ban đầu. Điều này dẫn đến tình trạng cạn kiệt tài nguyên (Denial-of-Service), khiến server ngừng hoạt động.
Nguyên nhân gốc rễ nằm ở việc nhiều thư viện HTTP/3 không kiểm soát chặt chẽ kích thước của các header sau khi giải nén. Trong khi các thư viện này có giới hạn kích thước cho dữ liệu đầu vào, chúng lại bỏ qua hoặc áp dụng giới hạn quá muộn đối với kết quả sau khi giải nén, tạo điều kiện cho việc chiếm dụng bộ nhớ quá mức.
Đáng chú ý, FoxIO đã chỉ ra một phương thức tấn công tinh vi hơn: kẻ tấn công lưu trữ một header entry khoảng 4 KB, sau đó tham chiếu đến nó hàng nghìn lần bằng các mã tham chiếu 1-byte. Kết quả là server phải tái tạo lại toàn bộ entry đó mỗi lần tham chiếu, gây ra sự khuếch đại bộ nhớ lên tới 4.000 lần trên một số nền tảng như Bun.
Tình trạng các thư viện bị ảnh hưởng
FoxIO đã kiểm tra 10 stack HTTP/3 phổ biến và phát hiện lỗ hổng trên 7 trong số đó. Một số thư viện đã phát hành bản vá, trong khi các dự án khác vẫn đang trong trạng thái chưa được khắc phục:
- Đã vá: quic-go (v0.57.0), Cloudflare quiche (v0.29.3), lsquic (v4.9.0), và Wireshark (v4.6.2 / 4.4.12).
- Chưa vá: Bun, h3 (hyperium), và aioquic/mitmproxy.
Các nền tảng như IIS, Envoy, ngtcp2/nghttp3 và Google quiche được xác định là không bị ảnh hưởng do đã áp dụng cơ chế giới hạn bộ nhớ ngay trong quá trình giải nén.
Khuyến nghị
Đối với các hệ thống sử dụng thư viện chưa có bản vá, các chuyên gia khuyến cáo quản trị viên nên thực hiện các biện pháp tạm thời:
- Đối với Bun: Không nên công khai server HTTP/3 ra internet.
- Đối với mitmproxy: Vô hiệu hóa HTTP/3 bằng tùy chọn
--set http3=false. - Đối với thư viện h3 (Rust): Cấu hình giới hạn hợp lý cho
max_field_section_size.
Mặc dù hiện tại chưa có báo cáo về các cuộc tấn công thực tế (in the wild), việc nâng cấp lên các phiên bản mới nhất là ưu tiên hàng đầu để đảm bảo an toàn cho hạ tầng mạng.
Nguồn tham khảo: The Hacker News



No Comment! Be the first one.