KR — ZDNet Korea
"Đe dọa toàn bộ hệ sinh thái máy chủ"... Sau PHP, Node.js cũng bị phát hiện lỗ hổng bảo mật
Bảo mật2 phút đọc
Các nhà nghiên cứu bảo mật vừa tìm thấy một lỗ hổng nghiêm trọng tên là Node2shell trong Node.js, công cụ giúp chạy JavaScript trên máy chủ. Lỗ hổng này xuất hiện ngay sau một vấn đề tương tự ở PHP.
Chuyện gì đã xảy ra
Theori, một công ty Hàn Quốc chuyên kiểm tra lỗ hổng phần mềm, đã xác nhận lỗi Node2shell và đưa ra hướng dẫn khẩn cấp cho các công ty. Lỗi nằm ở một phần của Node.js dùng để giải nén dữ liệu Brotli. Brotli là cách nén dữ liệu cho nhỏ lại trước khi gửi qua mạng. Node.js đánh giá mức độ rủi ro là 'cao'. Kẻ tấn công không cần tài khoản đăng nhập. Chúng có thể gửi dữ liệu Brotli được làm đặc biệt để làm sập máy chủ, đọc một phần bộ nhớ của máy chủ, hoặc chiếm quyền điều khiển bằng cách chạy mã của riêng chúng.
Các con số và thông tin chính
- Mã lỗi: CVE-2026-111497, tên gọi là Node2shell
- Ảnh hưởng: các dòng Node.js 22.x, 24.x và 26.x chưa cài bản vá bảo mật mới nhất
- Phiên bản đã sửa: 22.23.4, 24.22.1 và 26.12.1 trở lên
- Node 20 trở về trước không còn được hỗ trợ chính thức; người dùng cần hỏi nhà cung cấp hệ điều hành hoặc dịch vụ để nhận cập nhật
- Theori mở một trang kiểm tra miễn phí tại nodejsguard.io, chỉ cần địa chỉ dịch vụ đang chạy
Node.js là gì?
Node.js cho phép lập trình viên chạy JavaScript trên máy chủ, không chỉ trong trình duyệt web. Công cụ này được dùng rộng rãi cho website và dịch vụ đám mây. Lỗi này không do lập trình viên viết code sai. Nó nằm ở chính phiên bản Node.js. Các công cụ phổ biến như body-parser của Express 5, hàm fetch() có sẵn, và các thư viện HTTP như axios, got, node-fetch đều có thể mở đường cho tấn công.
Vì sao chuyện này quan trọng
Rất nhiều website và ứng dụng chạy trên Node.js, nên một lỗi có thể ảnh hưởng đến phần lớn thế giới máy chủ. Ngay cả đội không bao giờ dùng nén dữ liệu vẫn có thể gặp rủi ro, vì các khung làm web tự động xử lý loại dữ liệu này. Các công ty chưa thể cập nhật ngay cần lớp bảo vệ tạm thời, ví dụ một reverse proxy như Nginx, để chặn tấn công trong lúc chờ vá.
Cần theo dõi điều gì
- Các công ty có cài nhanh các phiên bản Node.js đã sửa hay không
- Có thêm báo cáo về các cuộc tấn công dùng Node2shell hay không
- Người dùng Node 20 trở về trước có nhận được bản vá bảo mật từ nhà cung cấp hay không
- Thêm chi tiết trên blog kỹ thuật của Theori về cách kiểm tra xem hệ thống đã bị tấn công chưa
Chú giải
- Node.js
- Công cụ giúp chạy JavaScript trên máy chủ, không chỉ trong trình duyệt.
- Theori
- Công ty Hàn Quốc kiểm tra phần mềm để tìm lỗ hổng bảo mật.
- Brotli
- Cách nén dữ liệu để gửi qua mạng nhanh hơn và nhỏ hơn.
- CVE-2026-111497
- Mã số chính thức của lỗ hổng Node2shell, dùng để tra cứu và theo dõi.
- Nginx
- Phần mềm reverse proxy, đứng trước máy chủ để lọc và chặn yêu cầu xấu.