Node.js sửa lỗi TLS và Brotli nghiêm trọng trong các phiên bản 26, 24 và 22
Node.js đã phát hành bản vá khẩn cấp vào ngày 21/10/2026 cho các phiên bản 26.x, 24.x và 22.x. Lỗi TLS và Brotli được sửa chữa, cùng với việc cập nhật các phụ thuộc quan trọng như OpenSSL và Undici. Các lỗ hổng nghiêm trọng được khắc phục, bao gồm việc bỏ qua kiểm tra tên máy chủ trong chứng chỉ TLS.

Node.js đã phát hành bản vá khẩn cấp vào ngày 21/10/2026 cho các phiên bản 26.x, 24.x và 22.x. Lỗi TLS và Brotli được sửa chữa, cùng với việc cập nhật các phụ thuộc quan trọng như OpenSSL và Undici. Các lỗ hổng nghiêm trọng được khắc phục, bao gồm việc bỏ qua kiểm tra tên máy chủ trong chứng chỉ TLS.
Nội dung chính
- Node.js đã phát hành bản vá cho các phiên bản 26.x, 24.x và 22.x vào ngày 21/10/2026.
- Các lỗ hổng TLS nghiêm trọng được sửa chữa, bao gồm CVE-2026-105483 và CVE-2026-106069.
- Một lỗi nghiêm trọng trong decodificador Brotli được khắc phục, có mã CVE-2026-111497.
- Các vấn đề về DNS và sockets keep alive cũng được giải quyết.
- Các phụ thuộc như c-ares, Undici, OpenSSL và SQLite được cập nhật.
Chi tiết sự việc
Node.js đã công bố các bản cập nhật an ninh vào ngày 21/10/2026 cho các phiên bản 26.x, 24.x và 22.x. Các bản cập nhật này sửa các lỗ hổng nghiêm trọng ảnh hưởng đến việc kiểm tra TLS và giải mã Brotli, cũng như cập nhật các phụ thuộc quan trọng như OpenSSL và Undici.
Những đội ngũ đang triển khai dịch vụ trên Node.js cần cập nhật ngay lập tức. Các lỗ hổng được sửa chữa có mức độ nghiêm trọng cao, đủ để ưu tiên việc vá lỗi trong môi trường sản xuất.
Phần phức tạp nhất tập trung vào các cách truy cập xung quanh việc kiểm tra tên máy chủ trong chứng chỉ TLS. Trong Node.js 26.x và 24.x, một trường hợp được sửa chữa cho phép kiểm tra thất bại nếu một IP được biểu diễn bằng số thập phân đầy đủ, được ghi lại dưới dạng CVE-2026-105483. Một trường hợp khác cũng được sửa chữa trong 22.x, khi tên máy chủ được giải quyết lỏng lẻo thành một địa chỉ IP, được ghi lại dưới dạng CVE-2026-106069.
Cùng với đó, Node.js cũng sửa chữa một lỗi kiểm tra không chính xác của chứng chỉ trên tên máy chủ IPv4 không chuẩn, cho phép xác thực đầu cuối IP với DNS SAN, được ghi lại dưới dạng CVE-2026-106072, mức độ trung bình.
Các vấn đề khác bao gồm một lỗi nghiêm trọng trong giải mã Brotli: một lỗi ghi ra ngoài ranh giới có thể mở cửa cho thực thi mã từ xa, được ghi lại dưới dạng CVE-2026-111497. Đây là loại lỗi đòi hỏi phải kiểm tra trước các dịch vụ mở ra Internet và bất kỳ luồng nào chấp nhận hoặc xử lý phản hồi được nén.
Trong lĩnh vực mạng, một sửa đổi quan trọng khác được đưa ra: CVE-2026-105481 sửa chữa hành vi với các luồng keep alive cho phép xử lý phản hồi được viết trước khi yêu cầu được gửi đi. Cũng được sửa chữa một vấn đề trong dns.resolve, trừng phạt tên chứa ký tự NUL, được ghi lại dưới dạng CVE-2026-105482, mức độ nghiêm trọng cao.
Có thêm các thay đổi có tác động thực tế. CVE-2026-106074 sửa chữa hành vi trong crypto.randomUUID() và randomInt(), khiến các bộ đệm của entropy có thể được lưu trữ trong snapshots của khởi động và SEAs, dẫn đến các quá trình khác nhau lặp lại giá trị. Trong Node.js 26.x, hai lỗi nghiêm trọng thấp hơn cũng được sửa chữa, một liên quan đến ZipFile (CVE-2026-106070) và một liên quan đến một cấp quyền quá cao trong mô hình quyền của hệ thống tệp do một lookup radix với dấu hoa thị (CVE-2026-106071). Ba phiên bản giải quyết một cách truy cập xung quanh fs.realpathSync, được ghi lại dưới dạng CVE-2026-106073.
Các bản cập nhật phụ thuộc cũng được đưa ra để khắc phục các lỗ hổng đã biết trong ecosistema: c-ares và Undici được cập nhật trong 26.x, 24.x và 22.x; OpenSSL được cập nhật trong 24.x và 22.x; và SQLite được cập nhật trong 22.x. Ngoài ra, ca-cert được cập nhật do sự cố của một CA trung gian của eMudhra, một nhắc nhở về việc tin tưởng vào chứng chỉ cũng phụ thuộc vào vệ sinh của chuỗi chứng chỉ.
Lời khuyên hoạt động rõ ràng: cập nhật ngay lập tức đến các phiên bản được công bố vào ngày 21/10/2026 trong phiên bản tương ứng, và bắt đầu từ các dịch vụ ngoại vi. Cần kiểm tra danh sách các runtime và container, xoay các hình ảnh với Node.js được sửa chữa, và kiểm tra lại các luồng TLS và giải quyết DNS nếu sử dụng cấu hình không chuẩn. Nếu môi trường vẫn sử dụng phiên bản ngoài bảo trì, cảnh báo này là động lực: khi xuất hiện một bản cập nhật an ninh, phiên bản đó được coi là bị ảnh hưởng và hợp lý là di chuyển đến một phiên bản bảo trì theo lịch trình chính thức. Để không biết muộn, cách tốt nhất là đăng ký các thông báo an ninh của dự án.
Khuyến nghị
- Các tổ chức nên cập nhật Node.js ngay lập tức cho phiên bản tương ứng.
- Kiểm tra và cập nhật các dịch vụ perimetrales.
- Xác nhận lại các cấu hình TLS và DNS.
- Sử dụng các bản vá mới để bảo vệ các runtime và container.
Lưu ý: Bài viết được biên dịch và tóm tắt tự động bằng AI từ nguồn Una al Día · Hispasec (Tây Ban Nha). Vui lòng đối chiếu bài gốc trước khi sử dụng.
🛡️ Thông tin lỗ hổng liên quan (10)
Tổng hợp tự động từ MITRE CVE · NIST NVD · FIRST EPSS · CISA KEV · dịch bằng AIMột lỗ hổng trong xác minh tên máy chủ TLS của Node.js cho phép chứng chỉ không có địa chỉ IP SAN khớp xác thực kết nối đến địa chỉ IPv4 khi tên máy chủ được viết với các ký tự không phải ASCII, như các chữ số fullwidth (`127.0.0.1`). `tls.checkServerIdentity()` không nhận ra các tên máy chủ như địa chỉ IP, ngay cả khi chúng được chuẩn hóa và giải quyết thành một địa chỉ IPv4 thông thường, và so sánh chúng với tê…
Một lỗ hổng trong việc xác minh tên máy chủ TLS của Node.js có thể khiến chứng chỉ máy chủ được xác minh chống lại một địa chỉ IP khác so với địa chỉ mà khách hàng kết nối, khi tên là một chuỗi IPv4 không chuẩn có một số hàng đầu là số 0, như `0127.0.0.1`. Theo quy tắc URL của WHATWG, chuỗi số hàng đầu được đọc như hệ số octal (`0127.0.0.1` trở thành `87.0.0.1`), trong khi quá trình kết nối được thực hiện thông qu…
Một lỗ hổng trong việc xác minh tên máy chủ TLS của Node.js cho phép chứng chỉ chỉ có một DNS SAN xác thực một điểm kết nối IP khi khách hàng kết nối bằng cách sử dụng một cách viết IPv4 không chuẩn, như `0177.0.0.1`, `0x7f.0.0.1`, `2130706433` hoặc `127.1`. Hàm `tls.checkServerIdentity()` không phân loại các tên máy chủ này là địa chỉ IP, mà đã chuẩn hóa chúng thành dạng chuẩn và so sánh kết quả với tên miền DNS …
Google Brotli — Lỗ hổng giá trị trả về không kiểm tra của bộ giải mã Brotli của Google. Đưa vào KEV ngày 2026-10-27, hạn khắc phục với cơ quan liên bang Mỹ: 2026-11-10. Yêu cầu: Áp dụng các biện pháp khắc phục theo hướng dẫn nhà sản xuất, đảm bảo tuân thủ hướng dẫn CISA BOD 26-04 Prioritizing Security Updates Based on Risk (xem URL trong Ghi chú) và hướng dẫn CISA “Forensics Triage Requirements” (xem URL trong Ghi chú). Theo hướng dẫn BOD 26-04 cho các dịch vụ đám mây hoặc ngừng sử dụng sản phẩm nếu biện pháp khắc phục không có sẵn. Các bên liên quan có trách nhiệm đánh giá mỗi tài sản về sự phơi bày trên Internet và đảm bảo tuân thủ hướng dẫn cập nhật vá BOD 26-04.
Viết ngoài phạm vi trong bộ giải mã Brotli của Google
Một lỗ hổng tràn bộ đệm trong bộ giải mã Brotli (c/dec/decode.c) trong các phiên bản Google Brotli từ 1.0.3 đến 1.2.0 trên tất cả các nền tảng cho phép một kẻ tấn công không xác thực từ xa để làm hỏng bộ nhớ trạng thái giải mã ngoài phạm vi, tiết lộ nội dung bộ nhớ nhạy cảm, gây ra tình trạng không thể sử dụng dịch vụ hoặc có thể thực thi mã code tùy ý sử dụng một luồng Brotli-compressed stream được tạo ra.
Một lỗ hổng trong việc tái sử dụng kết nối của Agent HTTP trong Node.js có thể khiến khách hàng chấp nhận phản hồi hợp lệ trước khi khách hàng đã gửi yêu cầu. Đây là một giải pháp không hoàn chỉnh cho CVE-2026-48931. Giá đỡ phá hủy các luồng keep-alive đang-idle khi có dữ liệu không mong đợi chỉ chạy khi vòng lặp sự kiện đang kiểm tra I/O. Nếu một phản hồi không mong đợi đã đạt đến luồng nhưng chưa được đọc trước…
Một lỗ hổng trong quá trình giải quyết DNS của Node.js cho phép tên miền chứa ký tự NUL bị cắt đứt im lặng bởi các hàm dns.resolve*() và dns.reverse(). Đây là một giải pháp không hoàn chỉnh của CVE-2026-48930, chỉ bao gồm dns.lookup() và các tùy chọn host của net/tls. Vì tên được truyền đến c-ares dưới dạng chuỗi C, giải quyết các yêu cầu tên như attacker.example\0.trusted.example sẽ giải quyết attacker.example v…
A flaw in Node.js `crypto` causes the internal entropy caches used by `crypto.randomUUID()`, `crypto.randomUUIDv7()`, and `crypto.randomInt()` to be saved into user-land startup snapshots (`--build-snapshot`) and single executable applications built with `useSnapshot`. If any of these functions, or an API that relies on them such as `URL.createObjectURL()`, is called while the snapshot is built, every process sta…(bản gốc tiếng Anh — đang chờ dịch)
A flaw in the Node.js `zlib.ZipFile` API can cause it to return bytes that do not belong to the requested entry after the local and central header validation fails. When `zipEntry.modified` is read on an archive whose local header does not match its central directory, either directly or while compacting the archive, the validation error is caught but the parsed local header is left cached without a content offset…(bản gốc tiếng Anh — đang chờ dịch)
Một lỗ hổng trong mô hình quyền truy cập filesystem của Node.js có thể cấp quyền truy cập vào các đường dẫn không phù hợp với quy tắc wildcard `--allow-fs-read` hoặc `--allow-fs-write`. Khi đường dẫn yêu cầu ngắn hơn tiền tố của một quy tắc cấp quyền wildcard, quá trình tìm kiếm cây nhị phân dừng so sánh sớm và coi đường dẫn đó là một khớp. Ví dụ, `--allow-fs-read=/etc/passwd.*` cũng cho phép đọc `/etc/passwd`. Đi…
Trong mô hình quyền của Node.js, một lỗ hổng trong việc thực thi filesystem để `fs.realpathSync()` không có kiểm tra quyền đọc cần thiết. Đây là một sửa chữa không hoàn chỉnh của CVE-2026-21715, chỉ bao gồm `fs.realpathSync.native()`. Do đó, mã chạy dưới `--permission` với quyền đọc filesystem bị hạn chế `--allow-fs-read` vẫn có thể sử dụng `fs.realpathSync()` để kiểm tra tồn tại của tệp, giải quyết mục tiêu của …
📰 Tin liên quan cùng sự kiện (3)
Node.js lỗ hổng Brotli bị khai thác, Qualys đề xuất biện pháp tạm thờiNguồn: Qualys Blog · 28/10/2026 · Cùng CVE-2026-111497, CVE-2026-106069
Lỗ hổng zero-day trong Brotli decoder bị khai thác, Google phát hành bản váNguồn: Tenable Blog · 27/10/2026 · Cùng CVE-2026-111497
Lỗ hổng nghiêm trọng trong giải mã Brotli cho phép tấn công mã hóa từ xaNguồn: Wiz Research · 25/10/2026 · Cùng CVE-2026-111497
Tin tổng hợp tự động từ Una al Día · Hispasec (Tây Ban Nha) (https://unaaldia.hispasec.com). Mỗi bài đều dẫn liên kết tới bài gốc của nguồn.
Bài viết liên quan
Cùng chuyên mục & chủ đề

Số lượng lỗ hổng bảo mật vượt 100,000, AI là nguyên nhân chính

Lỗ hổng zero-day trong mod_http2 của Apache HTTP Server bị khai thác

Nhóm tấn công khai thác lỗ hổng zero-day trong Windows





