Phân tích kỹ thuật lỗ hổng HTTP2Shell: Rủi ro vượt xa giao thức HTTP
Lỗ hổng CVE-2026-111497 trong bộ giải mã Brotli không chỉ ảnh hưởng đến Node.js mà còn đe dọa .NET, FFmpeg, ClickHouse và Apache Arrow.

- Bản chất lỗ hổng: CVE-2026-111497 nằm trong bộ giải mã Brotli, cho phép ghi đè bộ nhớ ngoài vùng đệm thông qua việc xử lý sai lệch khối dữ liệu.
- Phạm vi ảnh hưởng: Không giới hạn ở web traffic, lỗ hổng tác động đến các ứng dụng xử lý dữ liệu .NET, FFmpeg, ClickHouse và Apache Arrow.
- Cơ chế khai thác: Dữ liệu Brotli được chế tạo đặc biệt có thể gây crash hệ thống, hỏng bộ nhớ hoặc tạo ra các vòng lặp vô tận tiêu tốn tài nguyên CPU.
- Khuyến nghị: Cần kiểm tra kỹ các bản vá từ nhà cung cấp thay vì chỉ dựa vào số phiên bản phần mềm, đồng thời rà soát các luồng dữ liệu đầu vào không tin cậy.
Lỗ hổng bảo mật CVE-2026-111497, thường được gọi là HTTP2Shell, đã mở rộng phạm vi ảnh hưởng vượt xa khỏi các giao thức web truyền thống. Các nghiên cứu mới nhất chỉ ra rằng lỗi trong bộ giải mã Brotli có thể gây gián đoạn nghiêm trọng cho nhiều hệ sinh thái phần mềm khác nhau, bao gồm các ứng dụng .NET, công cụ xử lý đa phương tiện FFmpeg, máy chủ cơ sở dữ liệu ClickHouse và các khối lượng công việc trên Apache Arrow.
Việc chỉ kiểm tra phiên bản Node.js là không đủ để đảm bảo an toàn, vì nhiều phần mềm khác cũng tích hợp thư viện Brotli bị lỗi. Trong báo cáo công bố ngày 25 tháng 10, các nhà nghiên cứu bảo mật Aviv Engelberg, Eddy Tsalolikhin và Ofri Ouzan từ JFrog đã truy vết lỗ hổng này qua nhiều ngăn xếp phần mềm (software stacks). Kết quả phân tích cho thấy các kịch bản tấn công có thể dẫn đến crash hệ thống, hỏng bộ nhớ (memory corruption) hoặc các vòng lặp giải mã vô tận, tùy thuộc vào cách thức ứng dụng tương tác với thư viện bị ảnh hưởng.
Phân tích cơ chế lỗ hổng CVE-2026-111497
Lỗ hổng này được tiết lộ lần đầu trong các bản cập nhật bảo mật của Node.js vào ngày 21 tháng 10. Vấn đề cốt lõi nằm ở bộ giải mã Brotli của Google, nơi một sự chuyển đổi khối (block switch) không hợp lệ bị nhầm lẫn là yêu cầu cung cấp thêm dữ liệu đầu vào. Quá trình xử lý sau đó tiếp tục với trạng thái bộ giải mã bị hỏng, cho phép thực hiện thao tác ghi dữ liệu vượt quá vùng đệm bộ nhớ dự kiến.
Các phiên bản Brotli bị ảnh hưởng bao gồm: từ 1.0.3 đến trước 1.0.10, phiên bản 1.1.0 trước 1.1.1 và phiên bản 1.2.0 trước 1.2.1. Các dự án phần mềm có thể đã áp dụng bản vá mà không cần nâng cấp lên các phiên bản upstream này, do đó các đội ngũ kỹ thuật cần kiểm tra hồ sơ vá lỗi của nhà cung cấp thay vì chỉ dựa vào số hiệu phiên bản.
Tác động trên FFmpeg và libjxl
Trong FFmpeg, các nhà nghiên cứu đã tiếp cận bộ giải mã thông qua libjxl, thư viện chịu trách nhiệm xử lý hình ảnh JPEG XL. Một tệp tin hình ảnh được chế tạo đặc biệt chứa dữ liệu Brotli độc hại bên trong hộp siêu dữ liệu (metadata box) đã nén. Khi libjxl giải mã dữ liệu này, sự hỏng hóc bộ nhớ đã gây ra crash trong quá trình dọn dẹp (cleanup).

Thử nghiệm cho thấy kẻ tấn công có khả năng kiểm soát giá trị con trỏ bị hỏng. Tuy nhiên, tại thời điểm nghiên cứu, chưa thiết lập được một kịch bản khai thác thực thi mã từ xa (RCE) hoàn chỉnh cho FFmpeg. Dù vậy, lộ trình tấn công dựa trên tệp tin này làm dấy lên lo ngại về các lỗ hổng hỏng bộ nhớ khác trong FFmpeg.
Tác động trên .NET và các ứng dụng quản lý
JFrog cũng đã kích hoạt một vụ crash hệ thống thông qua các API giải nén Brotli của .NET. Một luồng dữ liệu hai giai đoạn (two-stage stream) đã khiến bộ giải mã rơi vào trạng thái không hợp lệ trước khi một thao tác bộ nhớ di chuyển ra ngoài vùng dữ liệu heap hợp lệ. Không giống như một ngoại lệ được quản lý (managed exception) thông thường, lỗi phân đoạn (segmentation fault) kết quả đã làm chấm dứt tiến trình ngay lập tức.

Mặc dù minh chứng sử dụng một ứng dụng console cục bộ, các đường dẫn giải mã liên quan có thể được sử dụng trong việc giải nén phản hồi HttpClient và middleware giải nén yêu cầu của ASP.NET Core. Microsoft đã thông báo vào ngày 25 tháng 10 rằng họ đang triển khai các bản cập nhật cho các runtime và SDK được hỗ trợ.
Tác động trên ClickHouse và Apache Arrow
ClickHouse đã thất bại sau khi nhận được một yêu cầu HTTP được chế tạo với phần thân nén Brotli dung lượng 23 MB. Sự hỏng hóc bộ giải mã gây ra crash trong quá trình dọn dẹp, làm dừng máy chủ thử nghiệm và gián đoạn các truy vấn đang hoạt động. JFrog báo cáo rằng một bản vá đã được hợp nhất, nhưng chưa có bản phát hành chính thức nào được cung cấp tại thời điểm nghiên cứu.
Apache Arrow cho thấy một kịch bản lỗi khác. Một đầu vào 534 byte được gửi qua đường dẫn giải mã Brotli của pyarrow đã gây ra một vòng lặp vô tận, tiêu thụ tài nguyên CPU và chặn hoàn toàn quá trình xử lý. Phiên bản Brotli 1.2.1 đã từ chối đầu vào tương tự trong chưa đầy một giây. Vấn đề theo dõi của Arrow vẫn đang mở tại thời điểm công bố.

Bảng tổng hợp các thực thể bị ảnh hưởng
| Phần mềm | Tác động kỹ thuật | Trạng thái bản vá |
|---|---|---|
| Node.js | RCE/Crash | Đã phát hành (22.23.4, 24.22.1, 26.12.1) |
| FFmpeg | Memory Corruption | Đang theo dõi |
| .NET | Segmentation Fault | Đang cập nhật |
| ClickHouse | Service Crash | Đã hợp nhất bản vá |
| Apache Arrow | CPU Exhaustion | Đang mở issue |
Khuyến nghị phòng thủ và săn tìm mối đe dọa
Theo nhóm nghiên cứu mối đe dọa của Sysdig, các bản vá Node.js đã được phát hành trong các phiên bản 22.23.4, 24.22.1 và 26.12.1. Các ứng dụng khác yêu cầu các bản dựng cập nhật riêng hoặc các gói thư viện tương ứng. Các đội ngũ an ninh mạng nên thực hiện các bước sau:
- Rà soát luồng dữ liệu: Truy vết các tệp tin, bộ đệm, yêu cầu và phản hồi không tin cậy đi vào mã nguồn giải nén.
- Sử dụng công cụ quét: Tận dụng các trình quét lỗ hổng như của JFrog để xác định các đường dẫn tiềm năng, lưu ý rằng sự khớp mã không đồng nghĩa với việc có thể khai thác từ xa.
- Cập nhật hệ thống: Ưu tiên cập nhật các thư viện Brotli lên phiên bản mới nhất (1.2.1 trở lên) trong tất cả các ứng dụng phụ thuộc.
Việc tích hợp các nguồn cấp dữ liệu tình báo mối đe dọa (TI Feeds) từ các trung tâm điều hành an ninh mạng (SOC) là cần thiết để cập nhật các dấu hiệu nhận biết mã độc mới nhất liên quan đến các lỗ hổng này. Luôn duy trì chính sách cập nhật bản vá định kỳ để giảm thiểu rủi ro từ các lỗ hổng 1-day và zero-day. Để biết thêm chi tiết kỹ thuật, bạn có thể tham khảo tài liệu từ Cơ sở dữ liệu lỗ hổng quốc gia (NVD).
Mạng Lưới An Ninh Mạng & Cộng Đồng
Nhận cảnh báo 0-Day khẩn cấp, phân tích mã độc và tham gia thảo luận kỹ thuật cùng chuyên gia.
Ban biên tập nội dung và phân tích an ninh mạng tại ADSECVN.COM.



