Node.js đã phát hành bản vá bảo mật vào thứ Tư, 11/11/2026, cho cả ba dòng đang được hỗ trợ: 26.x, 24.x và 22.x. Các bản vá là 26.13.1, 24.22.3 và 22.23.5, sửa tổng cộng 16 lỗ hổng, trong đó lỗi nghiêm trọng nhất được xếp mức High trên cả ba dòng. Node.js 20 và 25 đã hết hỗ trợ nên không nhận được bản vá nào trong đợt này.

Đây là đợt vá bảo mật thứ tư kể từ khi Node 20 hết hỗ trợ, và là đợt đầu tiên sau khi Node 26 trở thành LTS (28/10). Phần lớn lỗi nằm ở HTTP/2 và TLS — hai thành phần mà gần như mọi server Node.js đều dùng.

Có gì trong đợt vá lần này?

HTTP/2 — nhóm lỗi lớn nhất

Bảy trong số 16 lỗi liên quan tới HTTP/2. Nặng nhất là lỗi assertion khi đóng session: client chưa xác thực có thể làm sập server chỉ bằng cách gửi request rồi đóng kết nối đúng lúc — biến thể của CVE-2024-27983 mà bản vá cũ chưa xử lý triệt để. Các lỗi còn lại gồm rò rỉ bộ nhớ khi hủy stream, rò rỉ file descriptor khi session kẹt ở CLOSE_WAIT, tràn bộ nhớ đệm một byte trong xử lý Alt-Svc, và kiệt bộ nhớ vì dữ liệu chưa đọc không được tính vào ngân sách session.

TLS và HTTPS — rò rỉ bộ nhớ, vượt qua xác thực

Nhóm TLS và HTTPS có năm lỗi. Đáng lo nhất là lỗi re-entrancy trong HTTPS: client có thể khiến server đọc nhầm bộ nhớ của kết nối khác, kể cả khóa riêng TLS và nội dung request của người dùng khác. Bốn lỗi còn lại: đổi servername khi đàm phán lại TLS 1.2, chính sách CA theo hostname trong mTLS không được áp dụng, session TLS đã cache bị dùng lại sai chính sách, và lỗi handshake với callback SNI hoặc OCSP.

Các lỗi còn lại và cập nhật dependency

Ba lỗi còn lại gồm lộ thông tin đăng nhập proxy trong thông báo lỗi, hai lỗi vượt qua Permission Model (fs.watch đệ quy và wildcard –allow-fs-read), và lỗi zlib làm sập process khi peer ngắt kết nối lúc đang nén. Đợt vá cũng cập nhật llhttp (cả ba dòng), undici (24.x, 26.x) và sqlite (22.x, 24.x).

Phiên bản nào cần nâng cấp?

Hãy nâng cấp lên bản vá tương ứng: 26.x lên 26.13.1, 24.x lên 24.22.3, 22.x lên 22.23.5. Node.js 20 (hết hỗ trợ 30/4/2026) và Node.js 25 (hết hỗ trợ 1/6/2026) không có bản vá — các dòng hết hỗ trợ luôn được coi là bị ảnh hưởng.

Điều này có ý nghĩa gì với bạn

Đợt vá này không yêu cầu đổi code — chỉ cần nâng cấp phiên bản. Nhưng đừng trì hoãn: phần lớn lỗi chỉ cần một request độc hại tới server public là khai thác được, và lỗi rò rỉ bộ nhớ có thể lộ khóa TLS. Sau khi nâng cấp, kiểm tra bằng node -v và rebuild image Docker nếu cần.

Bài viết liên quan

Câu hỏi thường gặp

Tôi đang dùng Node 20 thì sao?

Node 20 đã hết hỗ trợ từ 30/4/2026 nên không có bản vá. Cách an toàn nhất là nâng cấp lên Node 24 hoặc 26, hai dòng LTS còn được hỗ trợ tới 2028 và 2029.

Có cần thay đổi code sau khi nâng cấp không?

Không. Đây là bản vá bảo mật thuần túy, chỉ cần nâng cấp phiên bản. Nếu bạn dùng respondWithFile, altsvc() hoặc mTLS theo từng hostname, hãy kiểm tra lại các tính năng này sau khi vá.

💬 Tin này ảnh hưởng tới dự án của bạn thế nào? Chia sẻ góc nhìn của bạn trong phần bình luận — mình đọc hết và sẽ tổng hợp những ý hay nhất.

Nguồn tham khảo

Node.js — Wednesday, November 11, 2026 Security Releases: https://nodejs.org/en/blog/vulnerability/november-2026-security-releases