Node2Shell: Lỗ hổng RCE nghiêm trọng trên Node.js thông qua dữ liệu Brotli độc hại
Các nhà nghiên cứu tại Imperva vừa công bố kỹ thuật tấn công Node2Shell, cho phép thực thi mã từ xa (RCE) trên các phiên bản Node.js thông qua việc xử lý dữ liệu Brotli được tinh chỉnh đặc...
- Giọng nữ Bắc
Các chuyên gia bảo mật tại Imperva đã chứng minh thành công một kỹ thuật tấn công mới mang tên “Node2Shell”, cho phép kẻ tấn công thực thi mã từ xa (RCE) trên các bản dựng chính thức của Node.js. Lỗ hổng này, được định danh là CVE-2026-111497, liên quan đến cách thức bộ giải mã Brotli tích hợp trong Node.js xử lý các luồng dữ liệu không hợp lệ.
Table Of Content
Chi tiết về lỗ hổng Node2Shell
Trong thử nghiệm thực tế, các nhà nghiên cứu đã thực thi mã thành công trên Node.js phiên bản 24.22.0 chạy trên môi trường Linux arm64 mà không cần sử dụng trình gỡ lỗi (debugger) hay các bản dựng tùy chỉnh. Bằng cách gửi các gói dữ liệu Brotli được thiết kế đặc biệt, kẻ tấn công có thể khai thác lỗi ghi ngoài phạm vi (out-of-bounds write) trong bộ giải mã.
Lỗ hổng phát sinh do bộ giải mã tiếp tục xử lý dữ liệu ngay cả khi gặp phải một điểm không hợp lệ trong luồng Brotli. Thay vì dừng lại và báo lỗi, bộ giải mã lại hiểu nhầm đó là yêu cầu tiếp tục xử lý, dẫn đến việc ghi đè lên bộ nhớ đệm và tạo điều kiện cho việc thực thi mã tùy ý.
Phạm vi ảnh hưởng
Lỗ hổng này ảnh hưởng đến các dòng Node.js 22.x, 24.x và 26.x. Các ứng dụng có nguy cơ bị tấn công nếu chúng sử dụng bộ giải mã Brotli tích hợp để xử lý dữ liệu từ các nguồn không đáng tin cậy, bao gồm:
- Các phản hồi HTTP được giải mã thông qua hàm
fetch()của Node.js. - Dữ liệu yêu cầu (request body) được giải mã bởi các middleware như
body-parsertrong Express.
Mặc dù chưa có báo cáo về việc khai thác lỗ hổng này trong thực tế (in-the-wild), các chuyên gia cảnh báo rằng đây là một mối đe dọa tiềm tàng đối với các dịch vụ web hiện đại.
Khuyến nghị bảo mật
Đội ngũ phát triển Node.js đã phát hành bản vá vào ngày 21 tháng 10 năm 2026. Người dùng cần thực hiện các bước sau:
- Cập nhật ngay lập tức: Nâng cấp lên các phiên bản đã vá (ví dụ: 24.22.1) để loại bỏ lỗ hổng.
- Kiểm tra container: Đảm bảo các image container và các artifact chứa binary Node.js cũng được cập nhật phiên bản mới nhất.
- Chuyển đổi phiên bản: Đối với các dòng Node.js đã kết thúc hỗ trợ (EOL) như 20.x trở về trước, người dùng nên chuyển sang các dòng được hỗ trợ chính thức để nhận được các bản cập nhật bảo mật.
Hiện tại, không có giải pháp thay thế (workaround) nào bên trong runtime của Node.js, do đó việc cập nhật phần mềm là phương án duy nhất để đảm bảo an toàn.
Nguồn tham khảo: The Hacker News

No Comment! Be the first one.