Next.js vá khẩn hai lỗ hổng chạy mã từ xa, điểm 9,5
Next.js 16.4.1 và 15.5.28 vá hai lỗi cho phép chạy mã từ xa không cần đăng nhập, một ở bộ nhớ đệm `use cache`, một ở khâu xử lý ảnh SVG qua thư viện sharp. Kèm một lỗi làm treo server qua Server Actions.
Ngày 14/10, đội Next.js phát hành bản vá ngoài lịch 16.4.1 và 15.5.28. Bản vá sửa hai lỗi được chấm 9,5/10 theo CVSS v4, cả hai đều cho phép chạy mã trên server mà không cần đăng nhập. Ngày 20/10, Cơ quan An ninh mạng Singapore (CSA) phát cảnh báo yêu cầu vá ngay.
Nếu bạn nhờ AI dựng app bằng Next.js rồi tự chạy trên VPS hay Docker, hãy đọc kỹ bài này.
Lỗi 1: ảnh SVG làm hỏng bộ nhớ của sharp (CVE-2026-96889)
Next.js có sẵn API tối ưu ảnh, dùng thư viện sharp để thu nhỏ và đổi định dạng ảnh. Thư viện này có một lỗi về bộ nhớ khi xử lý ảnh SVG. Kẻ tấn công lợi dụng lỗi đó để chạy mã trên server.
Ảnh hưởng: Next.js từ 10.0.0 đến 15.5.27, và 16.0.x đến 16.4.0
Điều kiện được nêu: server chạy Linux dùng glibc, tức phần lớn VPS và image Docker phổ thông
Cách tạm thời nếu chưa nâng cấp được: bảo đảm bản sharp mà Next.js đang dùng là 0.35.5 trở lên
Lỗi 2: use cache trả về mảng nhị phân
Lỗi này chỉ có ở Next.js 16 (16.0.0 đến 16.4.0). Lỗi xảy ra với app dùng App Router bật Cache Components, khi một hàm use cache trả về nhiều typed array như Uint8Array. Kẻ tấn công chạy được mã trên server mà không cần đăng nhập.
Lỗi này chưa có mã CVE, chỉ có mã GitHub GHSA-673q-mjm6-r5xr. Đội Next.js không đưa cách vá tạm nào và khuyên nâng cấp ngay cả khi app của bạn không có hàm kiểu này.
Kèm theo: Server Actions làm treo server
Một lỗi mức cao (8,2) khác: request chế sẵn khiến server ngốn CPU tới mức không trả lời được nữa. Lỗi chỉ ảnh hưởng app dùng App Router có ít nhất một Server Action, từ bản 13.0.0 trở lên. App dùng Pages Router không bị.
Nên làm gì
Nâng cấp. Chạy lệnh này rồi build và deploy lại:
npm install next@16.4.1 # hoặc next@15.5.28 nếu đang ở nhánh 15
Kiểm tra sharp. Chạy npm ls sharp, bảo đảm không còn bản nào dưới 0.35.5. Nâng cấp Next.js thường kéo theo bản sharp mới, nhưng nếu dự án có lockfile cũ thì vẫn nên kiểm tra.
Đừng chỉ tin vào “đã update”. Kiểm tra package-lock.json trên server. Image Docker cũng phải build lại, vì image đã build trước đó vẫn chứa bản cũ.
Hiện chưa có báo cáo nào về việc hai lỗi này bị khai thác thực tế. Nhưng Next.js rất phổ biến, nên đây là thời điểm vá trước khi có người viết được mã khai thác.
App Next.js của bạn đang chạy trên Vercel hay tự host? Đã nâng cấp chưa? Kể trong cộng đồng Vibe Code & Bảo Mật nhé.
Next.jslỗ hổngmáy chủ/anh/web/nextjs-rce-480.webpNext.js · lỗ hổng · máy chủ
Next.js va khan hai lo hong chay ma tu xa, diem 9,5 Next.js 16.4.1 va 15.5.28 va hai loi cho phep chay ma tu xa khong can dang nhap, mot o bo nho dem `use cache`, mot o khau xu ly anh SVG qua thu vien sharp. Kem mot loi lam treo server qua Server Actions. Next.js lo hong may chu Ngay 14/10, doi Next.js phat hanh ban va ngoai lich **16.4.1** va **15.5.28**. Ban va sua hai loi duoc cham **9,5/10 theo CVSS v4**, ca hai deu cho phep chay ma tren server ma khong can dang nhap. Ngay 20/10, Co quan An ninh mang Singapore (CSA) phat canh bao yeu cau va ngay.
Neu ban nho AI dung app bang Next.js roi tu chay tren VPS hay Docker, hay doc ky bai nay.

## Loi 1: anh SVG lam hong bo nho cua sharp (CVE-2026-96889)
Next.js co san API toi uu anh, dung thu vien **sharp** de thu nho va doi dinh dang anh. Thu vien nay co mot loi ve bo nho khi xu ly anh SVG. Ke tan cong loi dung loi do de chay ma tren server.
- Anh huong: Next.js **tu 10.0.0 den 15.5.27**, va **16.0.x den 16.4.0**
- Dieu kien duoc neu: server chay **Linux dung glibc**, tuc phan lon VPS va image Docker pho thong
- Cach tam thoi neu chua nang cap duoc: bao dam ban `sharp` ma Next.js dang dung la **0.35.5 tro len**
## Loi 2: `use cache` tra ve mang nhi phan
Loi nay chi co o **Next.js 16** (16.0.0 den 16.4.0). Loi xay ra voi app dung App Router bat Cache Components, khi mot ham `use cache` tra ve nhieu typed array nhu `Uint8Array`. Ke tan cong chay duoc ma tren server ma khong can dang nhap.
Loi nay chua co ma CVE, chi co ma GitHub GHSA-673q-mjm6-r5xr. Doi Next.js khong dua cach va tam nao va khuyen **nang cap ngay ca khi app cua ban khong co ham kieu nay**.
## Kem theo: Server Actions lam treo server
Mot loi muc cao (8,2) khac: request che san khien server ngon CPU toi muc khong tra loi duoc nua. Loi chi anh huong app dung App Router co it nhat mot Server Action, tu ban 13.0.0 tro len. App dung Pages Router khong bi.
## Nen lam gi
**Nang cap.** Chay lenh nay roi build va deploy lai:
```bash
npm install next@16.4.1 # hoac next@15.5.28 neu dang o nhanh 15
```
**Kiem tra sharp.** Chay `npm ls sharp`, bao dam khong con ban nao duoi 0.35.5. Nang cap Next.js thuong keo theo ban sharp moi, nhung neu du an co lockfile cu thi van nen kiem tra.
**Dung chi tin vao "da update".** Kiem tra `package-lock.json` tren server. Image Docker cung phai build lai, vi image da build truoc do van chua ban cu.
Hien chua co bao cao nao ve viec hai loi nay bi khai thac thuc te. Nhung Next.js rat pho bien, nen day la thoi diem va truoc khi co nguoi viet duoc ma khai thac.
---
App Next.js cua ban dang chay tren Vercel hay tu host? Da nang cap chua? Ke trong [cong dong Vibe Code & Bao Mat](https://www.facebook.com/groups/1867387324580254) nhe.
## Nguon
- [Next.js Security Update for Upstream Vulnerabilities](https://nextjs.org/blog/nextjs-security-update-october-14-2026), blog chinh thuc cua Next.js
- [GHSA-2464-fhr4-w9xw: RCE trong Image Optimization API voi SVG](https://github.com/vercel/next.js/security/advisories/GHSA-2464-fhr4-w9xw), GitHub
- [GHSA-673q-mjm6-r5xr: RCE trong ham `use cache`](https://github.com/vercel/next.js/security/advisories/GHSA-673q-mjm6-r5xr), GitHub
- [GHSA-p3m5-59mp-jv5r: Server Actions DoS](https://github.com/vercel/next.js/security/advisories/GHSA-p3m5-59mp-jv5r), GitHub
- [Critical Vulnerabilities in Next.js (AL-2026-148)](https://www.csa.gov.sg/alerts-and-advisories/alerts/al-2026-148/), CSA Singapore