Node.js Project vừa phát hành đợt cập nhật bảo mật ngày 21/10/2026 cho cả 3 dòng phiên bản đang được hỗ trợ — 26.x, 24.x và 22.x — vá tổng cộng 10 lỗ hổng bảo mật, trong đó có 4 lỗ hổng mức High. Đáng lo nhất là một lỗi trong bộ giải nén Brotli có thể bị khai thác để thực thi mã từ xa (RCE). Anh em đang chạy stack Node.js — web app, API, bot, n8n, công cụ nội bộ — cần kiểm tra và cập nhật ngay.
Lỗ hổng nguy hiểm nhất: CVE-2026-111497 (Brotli decoder)
Lỗi nghiêm trọng nhất đợt này nằm ở bộ giải nén Brotli của Node.js: một lỗi ghi dữ liệu tràn khỏi vùng nhớ cho phép (out-of-bounds write) có thể giúp kẻ tấn công thực thi mã từ xa trên máy chủ. Lỗ hổng ảnh hưởng cả 3 dòng 26.x, 24.x và 22.x.
Bạn có nguy cơ cao nếu ứng dụng của bạn — hoặc một thư viện bạn dùng — giải nén dữ liệu Brotli do người khác kiểm soát, ví dụ nội dung request gửi lên server hoặc response tải từ bên ngoài. Node.js cũng dùng Brotli trong một số luồng xử lý dữ liệu nén, nên cách an toàn nhất là cập nhật runtime thay vì chỉ rà soát code.
3 lỗ hổng mức High còn lại
- CVE-2026-105482 — xử lý DNS: hàm phân giải tên miền có thể cắt ngắn tên chứa ký tự NUL, làm sai lệch kết quả kiểm tra tên miền và mở đường cho các tấn công qua mặt cơ chế xác thực dựa trên DNS.
- CVE-2026-105483 — bỏ qua kiểm tra chứng chỉ TLS: việc kiểm tra hostname trên chứng chỉ TLS có thể bị qua mặt khi địa chỉ IP dùng ký tự số full-width. Lỗ hổng này ảnh hưởng 26.x và 24.x.
- CVE-2026-106069 — kiểm tra hostname TLS: thêm một điểm yếu nữa trong khâu đối chiếu hostname của chứng chỉ TLS, khiến kết nối mã hóa có thể bị mạo danh trong một số điều kiện.
Hai lỗi TLS trên đặc biệt đáng chú ý với các hệ thống gọi API ra ngoài (thanh toán, đăng nhập, webhook…), vì chúng làm suy yếu lớp xác minh danh tính máy chủ ở đầu bên kia.
Các lỗ hổng Medium, Low và cập nhật thư viện đi kèm
6 lỗ hổng còn lại (3 Medium, 3 Low) liên quan đến: xử lý response trên kết nối HTTP keep-alive, việc tái sử dụng số ngẫu nhiên khi ứng dụng khôi phục từ snapshot khởi động (đáng chú ý với ứng dụng đóng gói dạng single executable), mô hình phân quyền (permission model), xử lý file ZIP và kiểm tra quyền truy cập hệ thống file.
Bản phát hành cũng cập nhật các thư viện nhúng để xử lý lỗ hổng đã công bố: c-ares (cả 3 dòng), OpenSSL (24.x, 22.x), SQLite (22.x), Undici (cả 3 dòng), và loại bỏ các CA trung gian eMudhra bị xâm phạm khỏi kho chứng chỉ tin cậy đi kèm Node.js.
Phiên bản cần cập nhật ngay
- Dòng 26.x (Current) → cập nhật lên Node.js 26.12.1
- Dòng 24.x (LTS) → cập nhật lên Node.js 24.22.1
- Dòng 22.x (LTS) → cập nhật lên Node.js 22.23.4
Tải bản chính thức tại trang Download của Node.js: https://nodejs.org/en/download — thông báo gốc: October 2026 Security Releases.
Lưu ý quan trọng: theo chính sách của Node.js Project, các phiên bản đã End-of-Life vẫn bị ảnh hưởng nhưng KHÔNG được vá. Nếu bạn còn chạy các dòng cũ đã hết hỗ trợ, cách duy nhất an toàn là nâng cấp lên một dòng đang được hỗ trợ (22.x LTS, 24.x LTS hoặc 26.x) — đừng chờ bản vá cho dòng cũ.
Cách kiểm tra và cập nhật Node.js trên VPS/server
1. Kiểm tra phiên bản đang chạy
Chạy lệnh node -v trên từng máy (kể cả máy chạy n8n, bot, tool nội bộ và trong container). Nếu kết quả thấp hơn 26.12.1 / 24.22.1 / 22.23.4 tương ứng với dòng bạn đang dùng, máy đó chưa an toàn.
2. Cập nhật lên bản đã vá
Tùy cách cài đặt: tải trực tiếp từ nodejs.org, dùng nvm (nvm install bản mới rồi chuyển mặc định), cập nhật qua trình quản lý gói của hệ điều hành, hoặc build lại Docker image với base image Node.js mới. Sau khi cập nhật, khởi động lại toàn bộ tiến trình Node.js (PM2, systemd, container…) để bản vá có hiệu lực.
3. Đừng quên các ứng dụng đóng gói sẵn Node.js
Ứng dụng desktop dùng Electron, ứng dụng đóng gói dạng single executable (SEA) hay các binary nhúng sẵn Node.js không tự an toàn khi bạn cập nhật Node.js trên máy — chúng cần được build/phát hành lại bằng phiên bản đã vá.
Người chạy stack Node.js cần làm gì ngay?
- Kiểm tra
node -vtrên mọi server/VPS/container đang chạy Node.js và đối chiếu với 26.12.1 / 24.22.1 / 22.23.4. - Cập nhật ngay các hệ thống public ra internet, nhất là hệ thống có xử lý dữ liệu Brotli hoặc gọi API HTTPS ra ngoài.
- Khởi động lại toàn bộ service Node.js sau khi cập nhật; kiểm tra nhanh các kết nối TLS tới dịch vụ bên ngoài.
- Rà soát các ứng dụng đóng gói (Electron, SEA) và máy còn chạy Node.js End-of-Life để có kế hoạch nâng cấp dòng.
Tính đến thời điểm đăng bài, Node.js Project chưa công bố thông tin về việc các lỗ hổng này đang bị khai thác thực tế, và điều kiện khai thác chi tiết của lỗi Brotli cũng chưa được công khai. Hoidapwp.com sẽ cập nhật bài viết này ngay khi có thông tin mới từ nodejs.org.
- 🏢 Chuyên thiết kế web cho doanh nghiệp và cá nhân
- 🤖 Giải pháp tự động hóa cho Doanh nghiệp và cá nhân
- 📞 0925045760
- 🌐 thietkewebdian.com
