Phân tích lỗ hổng CVE-2026-111497: RCE trên Node.js qua Brotli-compressed data
Các nhà nghiên cứu vừa công bố kỹ thuật khai thác Node2Shell, cho phép thực thi mã từ xa (RCE) trên Node.js thông qua lỗ hổng bộ nhớ trong bộ giải mã Brotli.

- Lỗ hổng nghiêm trọng: CVE-2026-111497 cho phép kẻ tấn công thực thi mã từ xa (RCE) thông qua dữ liệu nén Brotli được chế tạo đặc biệt.
- Phạm vi ảnh hưởng: Các phiên bản Node.js 22.x, 24.x và 26.x đều nằm trong diện bị ảnh hưởng.
- Cơ chế lỗi: Lỗi tràn bộ nhớ (out-of-bounds write) xảy ra khi bộ giải mã Brotli xử lý sai các chuyển đổi loại khối trong luồng dữ liệu.
- Khuyến nghị: Quản trị viên cần cập nhật ngay lên các phiên bản Node.js 22.23.4, 24.22.1 hoặc 26.12.1 để vá lỗi.
Một kỹ thuật khai thác mới có tên gọi Node2Shell vừa được các nhà nghiên cứu bảo mật công bố, cho phép kẻ tấn công thực thi mã độc bên trong các ứng dụng Node.js thông qua việc gửi các gói dữ liệu nén bằng thuật toán Brotli được chế tạo đặc biệt. Lỗ hổng này, được định danh là CVE-2026-111497, là một lỗi bộ nhớ nghiêm trọng nằm trong bộ giải mã Brotli được tích hợp sẵn trong runtime của Node.js.
Theo thông báo bảo mật từ Node.js vào ngày 21 tháng 10 năm 2026, lỗ hổng này ảnh hưởng trực tiếp đến các nhánh phát hành 22.x, 24.x và 26.x. Các nhà nghiên cứu đã chứng minh khả năng khai thác thành công trên môi trường Linux arm64 với phiên bản Node.js 24.22.0 mà không cần sử dụng trình gỡ lỗi hay sửa đổi tệp nhị phân.

Phân tích cơ chế kỹ thuật của CVE-2026-111497
Lỗ hổng phát sinh khi bộ giải mã Brotli gặp phải một quá trình chuyển đổi không hợp lệ giữa các loại khối (block types) bên trong một luồng dữ liệu nén. Thay vì từ chối luồng dữ liệu bị lỗi, mã nguồn dễ bị tổn thương lại hiểu nhầm điều kiện này là yêu cầu cần thêm dữ liệu đầu vào, dẫn đến việc tiếp tục xử lý với một trạng thái nội bộ không hợp lệ.
Các thử nghiệm sử dụng công cụ kiểm tra bộ nhớ (memory-sanitizer) đã xác nhận rằng hành vi này có thể dẫn đến việc ghi dữ liệu vượt quá giới hạn bộ đệm (out-of-bounds write). Chính sự hỏng hóc bộ nhớ này là nền tảng cho việc thực thi mã từ xa mà các nhà nghiên cứu đã chứng minh. Dưới đây là bảng tổng hợp các thông tin kỹ thuật liên quan:
| Loại thực thể | Giá trị / Chỉ số | Mô tả tác động |
|---|---|---|
| Mã CVE | CVE-2026-111497 | Lỗ hổng RCE trong bộ giải mã Brotli |
| Độ nghiêm trọng | High-Severity | Cho phép thực thi mã từ xa |
| Phiên bản ảnh hưởng | 22.x, 24.x, 26.x | Các nhánh runtime chính của Node.js |
| Phiên bản vá lỗi | 22.23.4, 24.22.1, 26.12.1 | Các bản cập nhật bảo mật cần triển khai |
Vector tấn công và môi trường thử nghiệm
Kỹ thuật khai thác Node2Shell đã được kiểm chứng trên các ứng dụng sử dụng các middleware phổ biến như Express và body-parser. Cụ thể, các đường dẫn parser như raw() và json() đều cho phép kẻ tấn công đưa dữ liệu độc hại vào bộ giải mã Brotli. Cần lưu ý rằng, một máy chủ HTTP Node.js cơ bản không tự động giải nén các nội dung Brotli, do đó lỗ hổng này thường xuất hiện trong các ứng dụng có cấu hình xử lý request body phức tạp.
⚠️ Cảnh báo quan trọng: Việc triển khai các quy tắc WAF chỉ là giải pháp tạm thời. Các tổ chức cần ưu tiên cập nhật runtime Node.js lên phiên bản mới nhất để loại bỏ hoàn toàn nguy cơ từ lỗ hổng này.
Để phát hiện các dấu hiệu bị khai thác, quản trị viên nên theo dõi các lỗi bộ giải mã hoặc các tiến trình bị thoát đột ngột (unexpected process exits). Tuy nhiên, đây không phải là bằng chứng xác thực cho một cuộc tấn công thành công. Việc rà soát các tệp nhị phân Node.js bên trong các container và máy chủ là bước quan trọng nhất để đảm bảo hệ thống đã được vá lỗi triệt để.
Các đội ngũ kỹ thuật nên tích hợp các nguồn dữ liệu tình báo mối đe dọa (Threat Intelligence Feeds) để cập nhật kịp thời các quy tắc phát hiện mới nhất. Việc xây dựng lại các container image với phiên bản runtime đã được cập nhật là yêu cầu bắt buộc đối với các môi trường sản xuất hiện nay.
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.



