Dự án Node.js đã công bố các bản cập nhật bảo mật quan trọng, nhằm xử lý 11 lỗ hổng CVE trên các nhánh hoạt động 22.x, 24.x và 26.x của mình. Những cập nhật này rất cần thiết để giảm thiểu rủi ro bảo mật tiềm ẩn cho các ứng dụng dựa trên Node.js.
Các phiên bản Node.js v22.23.2, v24.18.1 và v26.5.1 hiện đã có sẵn. Bản phát hành bảo mật tháng 7 năm 2026 này bao gồm các bản sửa lỗi cho những điểm yếu liên quan đến xử lý HTTP/2, Mô hình Quyền (Permission Model), tái sử dụng kết nối HTTPS, phân giải DNS, xử lý SQLite, Zlib APIs và trình phân tích cú pháp HTTP.
Ngoài ra, Node.js cũng đã cập nhật các phần phụ thuộc đi kèm như Undici lên các phiên bản 8.9.0, 7.29.0 và 6.28.0 (tùy thuộc vào dòng phát hành), cùng với phần phụ thuộc llhttp lên phiên bản 9.4.3. Đặc biệt, hai lỗ hổng CVE nghiêm trọng trong HTTP/2 có thể cho phép kẻ tấn công từ xa làm gián đoạn các dịch vụ Node.js.
Lỗ hổng HTTP/2 Nghiêm trọng
Hai lỗ hổng CVE có mức độ nghiêm trọng cao trong giao thức HTTP/2 đã được khắc phục. Các lỗ hổng này có thể dẫn đến các cuộc tấn công mạng gây ra tình trạng từ chối dịch vụ hoặc các vấn đề về an toàn bộ nhớ, ảnh hưởng đến độ ổn định và bảo mật của hệ thống.
CVE-2026-56846: Bỏ qua Giới hạn Bộ nhớ Phiên HTTP/2
CVE-2026-56846 cho phép các khối tiêu đề HTTP/2 được giữ lại bỏ qua giới hạn bộ nhớ phiên tối đa (maxSessionMemory) đã được cấu hình. Điều này có nghĩa là một kẻ tấn công có thể gửi các yêu cầu HTTP/2 được tạo đặc biệt, khiến máy chủ tiêu thụ bộ nhớ vượt quá giới hạn cho phép.
Hậu quả trực tiếp của việc này là tình trạng từ chối dịch vụ (Denial-of-Service – DoS). Khi bộ nhớ máy chủ bị cạn kiệt, các dịch vụ Node.js có thể ngừng hoạt động, gây gián đoạn nghiêm trọng cho ứng dụng và người dùng.
CVE-2026-56848: Lỗi Use-After-Free trong HTTP/2
CVE-2026-56848 là một vấn đề HTTP/2 nghiêm trọng khác, ảnh hưởng đến tất cả các dòng phát hành đang hoạt động. Lỗ hổng này có thể kích hoạt tình trạng heap use-after-free khi thư viện nghttp2 cơ bản xử lý dữ liệu đồng thời nhận thêm dữ liệu.
Lỗi use-after-free xảy ra khi một chương trình cố gắng truy cập bộ nhớ sau khi nó đã được giải phóng, điều này có thể dẫn đến sự cố chương trình hoặc tệ hơn là thực thi mã tùy ý (remote code execution). Tùy thuộc vào điều kiện thời gian chạy, vấn đề an toàn bộ nhớ này có thể khiến tiến trình bị treo và có những hệ lụy bảo mật rộng lớn hơn.
Lỗ hổng Mô hình Quyền (Permission Model)
Mô hình Quyền của Node.js, được thiết kế để tăng cường bảo mật, cũng chứa đựng những điểm yếu đáng chú ý. Các lỗi này có thể dẫn đến việc ứng dụng truy cập hoặc ghi file ngoài các đường dẫn được cấp phép, tạo ra nguy cơ bảo mật đáng kể.
CVE-2026-58043: Lỗi Bỏ qua Mô hình Quyền Hệ thống Tệp
CVE-2026-58043 là một lỗ hổng CVE có mức độ nghiêm trọng cao trong Mô hình Quyền của Node.js. Các ứng dụng được khởi chạy với tùy chọn --permission có thể vô tình cấp quyền truy cập hệ thống tệp bên ngoài danh sách cho phép dự kiến (allowlist).
Nguyên nhân là do các vấn đề trong việc xử lý ranh giới tiền tố của radix-tree. Lỗi này cho phép người dùng có quyền truy cập vào một đường dẫn được phê duyệt có khả năng đọc hoặc ghi các tệp ở các vị trí không mong muốn, đe dọa đến tính toàn vẹn và bảo mật của dữ liệu.
CVE-2026-56847 và CVE-2026-58039: Bỏ qua Mô hình Quyền Phụ trợ
Node.js cũng đã giải quyết các lỗ hổng bỏ qua Mô hình Quyền có mức độ nghiêm trọng thấp hơn, liên quan đến nhật ký sự kiện theo dõi (trace-event logs) và báo cáo tiến trình (process reports), được xác định là CVE-2026-56847 và CVE-2026-58039. Cả hai đều có thể cho phép ghi tệp bên ngoài các đường dẫn được ủy quyền bởi --allow-fs-write.
Mặc dù có mức độ nghiêm trọng thấp hơn, những lỗ hổng CVE này vẫn tiềm ẩn rủi ro bảo mật, cho phép kẻ tấn công có thể thay đổi hoặc tạo ra các tệp trái phép trên hệ thống, ảnh hưởng đến hoạt động và tính bảo mật của ứng dụng.
Các Lỗ hổng HTTPS và Độ tin cậy Ứng dụng
Một số lỗi có mức độ nghiêm trọng trung bình ảnh hưởng đến HTTPS và độ tin cậy tổng thể của ứng dụng. Các lỗ hổng này chủ yếu liên quan đến việc quản lý và tái sử dụng các phiên kết nối an toàn, có thể dẫn đến việc bỏ qua các chính sách bảo mật đã được thiết lập.
CVE-2026-56850: Tái sử dụng Định danh TLS trong HTTPS Agents
CVE-2026-56850 có thể dẫn đến việc các tác nhân HTTPS (HTTPS Agents) tái sử dụng định danh TLS chung (mutual TLS identities) giữa các yêu cầu sử dụng các chứng chỉ PFX khác nhau. Việc tái sử dụng định danh không đúng cách này có thể cho phép một yêu cầu được ủy quyền với chứng chỉ này vô tình được chấp nhận bằng định danh của một chứng chỉ khác.
Điều này làm suy yếu cơ chế xác thực hai chiều và có thể dẫn đến các vấn đề ủy quyền không mong muốn, tạo ra một rủi ro bảo mật về việc mạo danh hoặc truy cập trái phép. Tham khảo thông tin chi tiết về các giao thức bảo mật tại CISA.
CVE-2026-58040: Bỏ qua Xác minh Hostname qua Tái sử dụng Phiên TLS
CVE-2026-58040 sửa chữa một bản vá lỗi trước đó không hoàn chỉnh, có thể cho phép tái sử dụng phiên TLS để bỏ qua xác minh tên máy chủ (hostname verification) giữa các chính sách định danh. Xác minh tên máy chủ là một thành phần quan trọng của bảo mật TLS, đảm bảo rằng client đang giao tiếp với máy chủ mong muốn.
Nếu việc xác minh này bị bỏ qua, một kẻ tấn công có thể thực hiện các cuộc tấn công trung gian (Man-in-the-Middle – MitM) hoặc chuyển hướng lưu lượng truy cập đến một máy chủ độc hại mà không bị client phát hiện. Điều này gây ra nguy cơ bảo mật nghiêm trọng đối với tính bảo mật và toàn vẹn của giao tiếp.
Các Lỗ hổng Khác ảnh hưởng đến Ổn định Hệ thống
Ngoài các vấn đề về HTTP/2, Mô hình Quyền và HTTPS, các bản cập nhật bản vá này còn giải quyết một số lỗ hổng CVE khác, chủ yếu tập trung vào việc ngăn chặn sự cố hệ thống và đảm bảo độ ổn định khi xử lý các dữ liệu bất thường hoặc bị thao túng.
CVE-2026-58042: Sự cố DNS Resolution với Phản hồi lớn
CVE-2026-58042 có thể khiến hàm dns.resolveAny() bị hủy bỏ khi phản hồi chứa hơn 256 bản ghi A. Lỗi này chủ yếu ảnh hưởng đến độ ổn định của các ứng dụng Node.js phụ thuộc vào việc phân giải DNS phức tạp hoặc nhận các phản hồi DNS quá lớn.
Mặc dù không trực tiếp gây ra tấn công mạng, việc hủy bỏ đột ngột có thể dẫn đến tình trạng từ chối dịch vụ cho các chức năng yêu cầu phân giải DNS, ảnh hưởng đến khả năng hoạt động của ứng dụng.
CVE-2026-58045: Lỗi Zlib API với TypedArray giả mạo
CVE-2026-58045 có thể khiến các API Node:zlib đồng bộ bị treo khi sử dụng độ dài byte của TypedArray bị giả mạo. Các thư viện nén dữ liệu như Zlib thường được sử dụng rộng rãi, và một lỗi trong việc xử lý đầu vào có thể dẫn đến sự cố hệ thống.
Lỗi này cho thấy sự cần thiết phải kiểm tra chặt chẽ các đầu vào, đặc biệt là khi làm việc với các cấu trúc dữ liệu cấp thấp như TypedArray, để ngăn chặn các cuộc tấn công mạng gây ra sự cố hoặc khai thác bộ nhớ.
CVE-2026-58044: Cắt bớt Tiêu đề HTTP dẫn đến Request Smuggling
Cuối cùng, CVE-2026-58044 khắc phục sự cố cắt bớt tiêu đề HTTP có thể cho phép tấn công request smuggling (đánh cắp yêu cầu) trong các proxy chuyển tiếp dựa trên Node.js. Request smuggling là một kỹ thuật tấn công phức tạp, trong đó kẻ tấn công gửi các yêu cầu HTTP được tạo đặc biệt để khai thác sự khác biệt trong cách các proxy và máy chủ gốc diễn giải độ dài của nội dung.
Khi thành công, tấn công request smuggling có thể dẫn đến việc bỏ qua các biện pháp kiểm soát bảo mật, truy cập nội dung nhạy cảm hoặc thực hiện các cuộc tấn công khác như tấn công cross-site scripting (XSS) hoặc tấn công tiêm nhiễm SQL.
Khuyến nghị và Biện pháp Khắc phục
Các quản trị viên và nhà phát triển được khuyến nghị nâng cấp ngay lập tức lên các phiên bản Node.js đã vá lỗi: v22.23.2, v24.18.1 và v26.5.1. Việc này là bước quan trọng nhất để bảo vệ hệ thống khỏi các lỗ hổng CVE đã được công bố.
Nên kiểm tra kỹ lưỡng các phần phụ thuộc trong môi trường sản xuất sau khi cập nhật bản vá để đảm bảo tính tương thích và tránh gây gián đoạn dịch vụ. Đồng thời, cần ngừng sử dụng các phiên bản Node.js không được hỗ trợ, vì chúng vẫn tiềm ẩn rủi ro bảo mật cao khi các lỗ hổng mới được tiết lộ.
Luôn duy trì việc theo dõi các thông báo bảo mật từ Node.js và các nguồn đáng tin cậy khác như NVD NIST để nắm bắt thông tin về các lỗ hổng CVE mới nhất và thực hiện cập nhật bản vá kịp thời. Việc này là yếu tố then chốt trong việc duy trì một môi trường ứng dụng an toàn và ổn định.










