Khẩn cấp: Vá lỗ hổng Pingora chống HTTP request smuggling

Cloudflare đã phát hành phiên bản 0.8.0 của framework mã nguồn mở Pingora để khắc phục ba lỗ hổng nghiêm trọng: CVE-2026-2833, CVE-2026-2835 và CVE-2026-2836. Những lỗ hổng Pingora này cho phép thực hiện các cuộc tấn công HTTP request smuggling và cache poisoning.
Các lỗ hổng này gây ra mối đe dọa nghiêm trọng đối với các triển khai Pingora độc lập được đưa ra internet trực tiếp. Chúng có thể bị khai thác để vượt qua các biện pháp bảo vệ quan trọng.
Cloudflare đã xác nhận rằng Mạng phân phối nội dung (CDN) của họ và lưu lượng truy cập của khách hàng hoàn toàn không bị ảnh hưởng. Điều này là do cơ sở hạ tầng nội bộ của Cloudflare không triển khai Pingora dưới dạng proxy ingress tiếp xúc trực tiếp.
Các lỗ hổng này được phát hiện và báo cáo bởi nhà nghiên cứu bảo mật Rajat Raghav thông qua Chương trình Bug Bounty của Cloudflare. Chúng có mức độ nghiêm trọng cao, với điểm CVSS lên đến 9.3/10.
Nếu không được vá kịp thời, những lỗ hổng này cho phép kẻ tấn công bỏ qua các danh sách kiểm soát truy cập (ACL) và tường lửa ứng dụng web (WAF) ở cấp độ proxy. Chúng cũng có thể chiếm đoạt các phiên làm việc của người dùng khác và làm hỏng các kết nối upstream.
Phân Tích Kỹ Thuật Các Lỗ Hổng Pingora Nghiêm Trọng
Ba lỗ hổng trong Pingora đều liên quan đến cách nó xử lý các yêu cầu HTTP. Mỗi lỗ hổng có cơ chế khai thác và tác động riêng biệt, nhưng đều dẫn đến việc bỏ qua các biện pháp bảo mật.
CVE-2026-2833: Lỗ Hổng HTTP/1.1 Connection Upgrade
Lỗ hổng đầu tiên này xuất phát từ cách Pingora xử lý các yêu cầu nâng cấp kết nối HTTP/1.1. Khi Pingora nhận được một header “Upgrade” trong yêu cầu, nó sẽ chuyển sang chế độ passthrough ngay lập tức.
Việc chuyển đổi này diễn ra trước khi máy chủ backend chính thức xác nhận việc nâng cấp bằng phản hồi “101 Switching Protocols”. Sự chuyển đổi sớm này tạo ra một cửa sổ khai thác.
Kẻ tấn công có thể lợi dụng việc chuyển đổi sớm này bằng cách thêm một yêu cầu thứ hai ẩn vào payload ban đầu của họ. Pingora sẽ mắc lỗi và chuyển tiếp yêu cầu bị lén lút này trực tiếp đến backend.
Quá trình này hoàn toàn bỏ qua các kiểm soát bảo mật ở cấp độ proxy. Hậu quả là có thể dẫn đến việc chiếm đoạt các phiên người dùng tiếp theo, gây ra rủi ro nghiêm trọng về bảo mật.
CVE-2026-2835: Sai Sót Trong Phân Tích Cú Pháp HTTP/1.0
Lỗ hổng thứ hai liên quan đến việc Pingora không tuân thủ các quy tắc phân tích cú pháp cho các yêu cầu HTTP/1.0 cũ hơn. Pingora đã cho phép các body yêu cầu HTTP/1.0 được phân định bằng “close-delimited” một cách không chính xác.
Đồng thời, nó xử lý sai các header “Transfer-Encoding: chunked”. Sự khác biệt trong cách Pingora và máy chủ backend hiểu độ dài body yêu cầu đã tạo ra lỗ hổng.
Kẻ tấn công có thể cố ý làm mất đồng bộ hóa khung kết nối (connection framing). Điều này cho phép các payload độc hại trượt qua proxy mà không bị phát hiện, một kỹ thuật được gọi là HTTP desynchronization attack.
Loại tấn công này thường được sử dụng để bỏ qua WAF và các hệ thống bảo mật khác. Đây là một rủi ro đáng kể đối với tính toàn vẹn của dữ liệu và hệ thống.
CVE-2026-2836: Lỗi Thiết Kế Cache Key Mặc Định
Lỗ hổng cuối cùng này liên quan đến một lỗi thiết kế trong việc xây dựng khóa cache mặc định của Pingora. Việc triển khai mặc định chỉ tạo khóa cache dựa trên đường dẫn Uniform Resource Identifier (URI).
Cách tiếp cận này đã bỏ qua các yếu tố phân biệt quan trọng như header host hoặc lược đồ HTTP. Do đó, hệ thống không thể phân biệt giữa các máy chủ khác nhau chia sẻ cùng một đường dẫn URI.
Kẻ tấn công có thể dễ dàng gây ra các va chạm cache (cache collisions). Điều này khiến người dùng hợp pháp nhận được các phản hồi độc hại hoặc đến từ các nguồn không đáng tin cậy (cross-origin responses).
Đây là một hình thức cache poisoning có thể dẫn đến việc hiển thị nội dung sai lệch hoặc thực thi mã độc hại trên trình duyệt người dùng.
Biện Pháp Khắc Phục và Giảm Thiểu Rủi Ro Cho Lỗ Hổng Pingora
Cloudflare khuyến nghị mạnh mẽ tất cả các tổ chức sử dụng proxy Pingora độc lập áp dụng các biện pháp giảm thiểu sau đây. Việc triển khai các bản vá bảo mật là vô cùng quan trọng để đảm bảo an toàn.
Tham khảo thêm thông tin chi tiết về các biện pháp khắc phục trên blog chính thức của Cloudflare.
Cập Nhật Phiên Bản Pingora
- Cập nhật ngay lập tức: Nâng cấp tất cả các triển khai Pingora lên phiên bản 0.8.0 hoặc mới hơn. Điều này sẽ khắc phục logic phân tích cú pháp và đảm bảo tuân thủ nghiêm ngặt các tiêu chuẩn RFC.
Triển Khai Custom Cache Keys
Kể từ phiên bản 0.8.0, khóa cache mặc định không an toàn đã bị loại bỏ. Do đó, người dùng bắt buộc phải triển khai một callback tùy chỉnh để đảm bảo cách ly cache phù hợp.
- Callback này phải bao gồm header host, lược đồ HTTP upstream và đường dẫn URI. Việc này giúp tạo khóa cache duy nhất và ngăn chặn cache poisoning.
Các Biện Pháp Tạm Thời
Nếu việc nâng cấp ngay lập tức không khả thi, có thể cấu hình logic lọc yêu cầu để giảm thiểu rủi ro từ các lỗ hổng Pingora.
- Cấu hình logic lọc yêu cầu để trả về lỗi đối với bất kỳ yêu cầu nào chứa header “Upgrade”.
- Từ chối bất kỳ yêu cầu nào không phải HTTP/1.1 hoặc các yêu cầu có header Content-Length không hợp lệ.
Việc áp dụng đầy đủ các biện pháp trên sẽ giúp bảo vệ hệ thống khỏi các mối đe dọa khai thác lỗ hổng Pingora. Đảm bảo tuân thủ các khuyến nghị bảo mật là ưu tiên hàng đầu.









