Công cụ AI
Lỗ hổng RCE Next.js tháng 10/2026: phiên bản nào bị ảnh hưởng và cách nâng cấp lên 16.4.1, 15.5.28
Next.js vừa công bố chi tiết 2 lỗi RCE mức Critical và 1 lỗi DoS, vá trong bản 16.4.1 và 15.5.28. Bài viết giải thích từng lỗi, phiên bản bị ảnh hưởng và 4 bước nâng cấp an toàn.
PNTECH Writer · 15/10/2026

Ngày 14/10/2026, đội ngũ Next.js chính thức phát hành next@16.4.1 (nhánh Active LTS) và next@15.5.28 (nhánh Maintenance LTS) để vá 3 lỗ hổng bảo mật [S1]. Đáng lo nhất là 2 lỗ hổng RCE Next.js mức Critical, cho phép thực thi mã từ xa mà không cần đăng nhập (unauthenticated remote code execution). Lỗi còn lại ở mức High, có thể khiến website bị từ chối dịch vụ (DoS) [S1].
Trước đó một ngày, PNTech đã có bài chuẩn bị cho bản vá bảo mật Next.js 14/10, khi chưa có số phiên bản. Giờ advisory đầy đủ đã công khai. Bài này đi vào chi tiết từng lỗi: ai bị ảnh hưởng, phiên bản nào cần nâng cấp, có cách xử lý tạm hay không, và 4 bước nâng cấp an toàn cho đội web.
Tóm tắt nhanh: 3 lỗ hổng và 2 bản vá
Theo blog chính thức của Next.js, đây là bản cập nhật ngoài lịch (out-of-band), gồm cả 2 bản sửa bị hoãn từ đợt bảo mật tháng 9 vì phải chờ các thư viện phụ thuộc phía thượng nguồn [S1]. Ba lỗ hổng gồm:
- RCE trong hàm
use cachetrả về typed array (Critical, GHSA-673q-mjm6-r5xr) [S1]. - RCE trong Image Optimization API khi xử lý SVG (Critical, CVE-2026-96889 / GHSA-2464-fhr4-w9xw) [S1].
- DoS trong App Router khi dùng Server Actions (High, GHSA-p3m5-59mp-jv5r) [S1].
Lệnh nâng cấp được Next.js đưa ra [S1]:
npm install next@15.5.28 # cho nhánh 15.5
npm install next@16.4.1 # cho nhánh 16.4
Ảnh: PNTech tự thiết kế theo advisory của Next.js
Lỗi RCE #1: hàm use cache trả về typed array
Lỗi này nằm ở ứng dụng dùng App Router với Cache Components. Khi một hàm use cache trả về nhiều typed array (các mảng kiểu Uint8Array, Float32Array…), kẻ tấn công có thể thực thi mã từ xa mà không cần xác thực [S1]. Lỗi có liên quan tới advisory phía React là GHSA-xqc2-xf4c-x3h3 [S1].
Theo trang advisory trên GitHub, lỗi được chấm 9,5/10 theo CVSS v4. Phiên bản bị ảnh hưởng là từ 16.0.0 đến 16.4.0, bản vá là 16.4.1 [S2]. Nhánh 15.x không nằm trong danh sách ảnh hưởng của lỗi này [S2].
Điểm quan trọng nhất: không có cách xử lý tạm. Next.js khuyên nâng cấp ngay, kể cả khi ứng dụng của bạn không có hàm nào tương tự [S1]. Lý do là rất khó chắc chắn 100% rằng không có đoạn code hay thư viện nào trong dự án rơi vào trường hợp này.
Ảnh chụp màn hình: nextjs.org
Lỗi RCE #2: Image Optimization API với ảnh SVG
Lỗi thứ hai là lỗi liên quan đến bộ nhớ trong một thư viện thượng nguồn mà Next.js dùng để tối ưu ảnh. Lỗi có thể dẫn tới thực thi mã từ xa khi Next.js chạy trên Linux dùng glibc [S1]. Đây là lỗi có mã CVE-2026-96889, cũng được chấm 9,5/10 [S3].
Phạm vi ảnh hưởng của lỗi này rộng hơn nhiều: từ Next.js 10.0.0 đến 15.5.27, và các bản 16.x đến 16.4.0 [S3]. Nghĩa là cả những dự án Next.js cũ vài năm tuổi cũng có thể bị ảnh hưởng nếu dùng tính năng tối ưu ảnh.
Cách xử lý tạm theo Next.js là bảo đảm thư viện sharp mà Next.js đang dùng có phiên bản 0.35.5 trở lên [S1]. Cài mới từ đầu sẽ tự nhận bản sharp đã sửa, còn nâng cấp Next.js lên bản vá thì trình quản lý gói sẽ tự kéo bản sharp đã sửa về [S3].
Với đội web ở Việt Nam, trường hợp hay gặp nhất là tự host trên VPS chạy Ubuntu hoặc Debian, hoặc trong Docker image dựa trên Debian. Các hệ này đều dùng glibc, nên cần ưu tiên xử lý. Advisory chỉ nêu glibc, nhưng nếu bạn chạy Alpine (musl) thì vẫn nên nâng cấp để đóng luôn 2 lỗi còn lại.
Lỗi DoS: App Router dùng Server Actions
Lỗi thứ ba ở mức High, điểm 8,2/10 [S4]. Kẻ tấn công gửi các request được tạo sẵn vào ứng dụng dùng App Router có ít nhất một Server Action. Các request này làm CPU tăng vọt và chặn việc xử lý các request khác trong cùng tiến trình, khiến website bị treo [S1]. Lỗi liên quan tới advisory phía React là GHSA-h3gv-c5rc-p453 [S1].
Phiên bản bị ảnh hưởng là từ 13.0.0 đến 15.5.27 và từ 16.0.0 đến 16.4.0. Không có cách xử lý nào ngoài nâng cấp [S4]. Tin tốt là ứng dụng chỉ dùng Pages Router, hoặc không dùng Server Actions, thì không bị lỗi này [S1].
Ảnh: PNTech tự thiết kế
4 bước nâng cấp Next.js an toàn cho đội web
Bước 1: Kiểm tra phiên bản đang chạy
Mở terminal ở thư mục dự án và chạy npm ls next sharp để xem phiên bản next và sharp thực tế đang được cài, không chỉ dải phiên bản ghi trong package.json. Nếu công ty có nhiều website, hãy lập danh sách và đánh dấu dự án nào dùng App Router, Server Actions, Cache Components và tối ưu ảnh.
Bước 2: Chọn đúng bản đích
- Đang ở nhánh 16.x: nâng lên 16.4.1 [S1].
- Đang ở nhánh 15.x: nâng lên 15.5.28 [S1].
- Đang ở 14.x hoặc cũ hơn: advisory chỉ có bản vá cho nhánh 15.5 và 16.4 [S3][S4]. Bạn cần lên kế hoạch nâng cấp phiên bản lớn. Trong lúc chờ, hãy bảo đảm
sharptừ 0.35.5 trở lên để giảm rủi ro lỗi ảnh SVG [S1], nhưng nhớ rằng cách này không xử lý được lỗi DoS.
Bước 3: Cài bản vá, build lại và triển khai
Tạo nhánh hoặc tag Git trước khi nâng cấp để dễ quay lại. Sau đó cài bản vá, build và chạy test. Nếu dùng Docker, hãy build lại image từ đầu (không dùng cache) để chắc chắn bản sharp mới được kéo về, rồi triển khai lại tất cả các máy chủ đang chạy.
Ảnh: PNTech tự thiết kế
Dùng pnpm hoặc yarn thì đổi lệnh tương ứng, ví dụ pnpm add next@16.4.1 hoặc yarn add next@16.4.1.
Bước 4: Kiểm thử và theo dõi
Sau khi triển khai, hãy thử lại các trang có ảnh, các trang dùng cache và các form gọi Server Actions. Theo dõi CPU và log trong vài ngày đầu. Về lâu dài, hãy bật thông báo Security advisories cho repo vercel/next.js trên GitHub và bật Dependabot để không bỏ lỡ bản vá tiếp theo. Nếu muốn tự rà thêm lỗi bảo mật trong code, có thể xem cách dùng lệnh /security-review của Claude Code.
Dành cho người không làm kỹ thuật
Nếu bạn là chủ shop, người làm marketing hay quản lý website nhưng không tự code, hãy gửi cho đội kỹ thuật hoặc agency 3 câu hỏi:
- Website của mình có dùng Next.js không? Đang ở phiên bản nào?
- Đã nâng lên 16.4.1 hoặc 15.5.28 chưa? Nếu chưa thì khi nào?
- Site có tự host trên Linux và dùng tính năng tối ưu ảnh không?
Hãy đề nghị họ gửi ảnh chụp kết quả lệnh npm ls next sau khi cập nhật. Với 2 lỗi RCE mức Critical, đây là việc nên xong trong ngày, không nên để sang tuần sau.
Kết luận
Bản vá Next.js ngày 14/10/2026 xử lý 2 lỗi RCE mức Critical và 1 lỗi DoS mức High. Lỗi use cache không có cách xử lý tạm, còn lỗi tối ưu ảnh ảnh hưởng tới cả các phiên bản từ 10.0.0 [S1][S3]. Cách xử lý chắc chắn nhất là nâng lên 16.4.1 hoặc 15.5.28, build lại sạch và triển khai lại mọi máy chủ.
Nếu bạn đang tìm công cụ AI hỗ trợ lập trình và rà soát code, có thể tham khảo danh sách công cụ PNTech khuyên dùng.
Nguồn tham khảo
- [S1] Next.js Blog, "Next.js Security Update for Upstream Vulnerabilities", 14/10/2026: https://nextjs.org/blog/nextjs-security-update-october-14-2026
- [S2] GitHub Security Advisory GHSA-673q-mjm6-r5xr: https://github.com/vercel/next.js/security/advisories/GHSA-673q-mjm6-r5xr
- [S3] GitHub Security Advisory GHSA-2464-fhr4-w9xw (CVE-2026-96889): https://github.com/vercel/next.js/security/advisories/GHSA-2464-fhr4-w9xw
- [S4] GitHub Security Advisory GHSA-p3m5-59mp-jv5r: https://github.com/vercel/next.js/security/advisories/GHSA-p3m5-59mp-jv5r
Tags
- rce
- lap-trinh
- nextjs
- bao-mat
- bao-mat-web
Câu hỏi thường gặp
Tiếp theo
Tool mình đã dùng thật
Xem danh sách tool và dịch vụ đã dùng trong công việc — kèm lý do nên cân nhắc và khi nào không cần.