Sự chuyển dịch của ngành công nghiệp phát triển web hướng tới các mô hình kết hợp giữa xử lý tại máy chủ và máy khách đã đạt đến đỉnh cao với sự ra đời của React Server Components (RSC). Tuy nhiên, cuộc cách mạng này cũng mang lại những thách thức bảo mật chưa từng có. Trong giai đoạn từ tháng 12 năm 2025 đến tháng 1 năm 2026, một chuỗi các lỗ hổng nghiêm trọng đã được phát hiện, làm rung chuyển nền móng của các ứng dụng sử dụng React 19 và Next.js 15/16. Khởi đầu từ lỗ hổng thực thi mã từ xa (RCE) "React2Shell" (CVE-2025-55182), các nghiên cứu chuyên sâu sau đó đã tiếp tục lộ ra hàng loạt điểm yếu gây từ chối dịch vụ (DoS) nằm sâu trong giao thức truyền tải dữ liệu và các tính năng tối ưu hóa hệ thống. Bài báo cáo này cung cấp cái nhìn chuyên sâu về các lỗ hổng DoS gần đây nhất, bao gồm GHSA-83fc-fqcc-2hmg, CVE-2025-59471 và CVE-2025-59472.
1. Sự tiến hóa của các mối đe dọa bảo mật trong kỷ nguyên RSC
Để hiểu rõ tính chất cấp bách, cần xem xét bối cảnh lịch sử của sự kiện "React2Shell" (CVE-2025-55182). Vào cuối năm 2025, cộng đồng bảo mật xác định lỗi giải tuần tự hóa (deserialization) không an toàn trong giao thức "Flight" của React, cho phép RCE với điểm CVSS 10.0. Mặc dù các bản vá đã được triển khai, nhưng nỗ lực khắc phục RCE đã vô tình làm lộ ra những logic xử lý không hoàn thiện khác, dẫn đến các kịch bản kẻ tấn công có thể làm treo máy chủ hoặc tiêu tốn cạn kiệt tài nguyên mà không cần thực thi mã độc.
Các lỗ hổng DoS gần đây là kết quả của sự tương tác phức tạp giữa logic xử lý dữ liệu của React và môi trường Node.js. Khi ứng dụng chấp nhận các cấu trúc dữ liệu phức tạp từ người dùng để render phía máy chủ, nó đối mặt với rủi ro về quản lý tài nguyên.
Danh sách các lỗ hổng DoS chính (Cập nhật 26/01/2026):
GHSA-83fc-fqcc-2hmg: Ảnh hưởng đến các gói
react-server-dom-*. Kẻ tấn công gửi yêu cầu HTTP đặc biệt đến Server Function endpoint gây treo máy chủ hoặc tràn bộ nhớ.CVE-2025-59471: Lỗ hổng trong Next.js Image Optimizer. Xảy ra khi bật
remotePatterns, cho phép hình ảnh từ xa quá lớn làm sập máy chủ do OOM (Out-of-Memory).CVE-2025-59472: Lỗ hổng trong Next.js PPR (Minimal Mode). Ảnh hưởng đến resume endpoint, cho phép tấn công Zipbomb hoặc buffering không giới hạn.
CVE-2025-55184: Treo vòng lặp sự kiện (Event Loop) do tham chiếu Promise xoay vòng trong RSC.
2. Cơ chế kỹ thuật của lỗ hổng GHSA-83fc-fqcc-2hmg
Trọng tâm của các đợt cập nhật ngày 26 tháng 1 năm 2026 là GHSA-83fc-fqcc-2hmg. Các nhà nghiên cứu phát hiện ra rằng các bản vá DoS trước đó (như CVE-2025-55184) là không hoàn thiện. Vấn đề nằm ở các gói react-server-dom-webpack, react-server-dom-parcel và react-server-dom-turbopack.
Giải tuần tự hóa và vòng lặp vô hạn
Giao thức Flight của React chia dữ liệu thành các khối (chunks). Mỗi khối có thể tham chiếu đến khối khác. Lỗ hổng nảy sinh khi cơ chế giải mã gặp các cấu trúc tham chiếu xoay vòng (cyclical references). Kẻ tấn công có thể tạo yêu cầu HTTP chứa các tham chiếu Promise lồng nhau. Khi máy chủ cố gắng giải quyết (resolve) các Promise này, nó rơi vào vòng lặp vô hạn, làm treo luồng sự kiện duy nhất của Node.js, dẫn đến từ chối dịch vụ toàn diện.
Lỗ hổng này có điểm CVSS 7.5, cho phép khai thác từ xa không cần xác thực. Ngay cả khi lập trình viên không định nghĩa Server Function, framework (như Next.js App Router) vẫn có thể bị ảnh hưởng do hỗ trợ RSC mặc định.
3. Lỗ hổng Next.js Image Optimizer (CVE-2025-59471)
Lỗ hổng này ảnh hưởng đến các ứng dụng tự lưu trữ (self-hosted) Next.js sử dụng tính năng tối ưu hóa hình ảnh từ bên ngoài qua remotePatterns.
Cơ chế: Endpoint
/_next/imagetải hình ảnh từ nguồn xa vào bộ nhớ mà không kiểm tra giới hạn kích thước tệp tối đa.Khai thác: Kẻ tấn công yêu cầu tối ưu hóa một ảnh cực lớn từ tên miền được phép. Khi Node.js nạp dữ liệu khổng lồ này, nó nhanh chóng vượt ngưỡng giới hạn bộ nhớ (JavaScript heap limit), gây sập tiến trình.
Phiên bản ảnh hưởng: Next.js >=10 đến <15.5.10 và >=16 đến <16.1.5. Các ứng dụng trên Vercel không bị ảnh hưởng do cơ chế bảo vệ hạ tầng của họ.
4. Lỗ hổng Next.js PPR và Minimal Mode (CVE-2025-59472)
CVE-2025-59472 liên quan đến tính năng thực nghiệm Partial Pre-Rendering (PPR) và "Minimal Mode" (NEXT_PRIVATE_MINIMAL_MODE=1).
Buffering không giới hạn: Máy chủ sử dụng
Buffer.concat()để gộp request body vào vùng nhớ mà không kiểm tra kích thước.Tấn công Zipbomb: Dữ liệu nén được giải nén bằng
inflateSync()mà không giới hạn đầu ra. Một payload nén nhỏ có thể nở ra hàng GB trong bộ nhớ, vượt qua các giới hạn kiểm tra tại tầng proxy.
Kết quả là lỗi FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory, làm chấm dứt tiến trình Node.js ngay lập tức.
5. Tác động của Async Hooks và APM
Một chi tiết kỹ thuật được Tấn Phát Digital lưu ý là vai trò của async_hooks trong Node.js. React và Next.js sử dụng AsyncLocalStorage để theo dõi ngữ cảnh yêu cầu. Khi sử dụng các công cụ giám sát (APM) như Datadog hay OpenTelemetry, async_hooks luôn được kích hoạt. Trong môi trường này, các lỗi tràn ngăn xếp (stack overflow) do RSC sẽ khiến Node.js thoát hoàn toàn với mã lỗi 7 thay vì chỉ trả về mã lỗi 500, khiến cuộc tấn công DoS trở nên nghiêm trọng hơn.
6. Chiến lược giảm thiểu và nâng cấp
Việc giải quyết triệt để đòi hỏi cập nhật phần mềm và thay đổi cấu hình hạ tầng.
Cập nhật phiên bản (Ưu tiên hàng đầu)
Các tổ chức cần rà soát các tệp khóa (lockfiles) và nâng cấp lên các phiên bản an toàn phát hành ngày 26/01/2026:
React 19.0.x: Cập nhật từ các bản 19.0.0 - 19.0.3 lên phiên bản 19.0.4.
React 19.1.x: Cập nhật từ các bản 19.1.0 - 19.1.4 lên phiên bản 19.1.5.
React 19.2.x: Cập nhật từ các bản 19.2.0 - 19.2.3 lên phiên bản 19.2.4.
Next.js 15.x: Nâng cấp từ các phiên bản trước 15.5.10 lên phiên bản 15.5.10.
Next.js 16.x: Nâng cấp từ các phiên bản trước 16.1.5 lên phiên bản 16.1.5.
Biện pháp bảo vệ tạm thời
Hạ tầng: Thiết lập
client_max_body_sizetại Proxy (Nginx/Apache) để ngăn chặn buffering không giới hạn.Cấu hình: Hạn chế hoặc xóa bỏ các tên miền không tin cậy trong
remotePatternscủa Image Optimizer.Vô hiệu hóa: Tắt tính năng PPR (
experimental.ppr: false) hoặc Minimal Mode nếu không thực sự cần thiết.WAF: Cập nhật các luật tường lửa (như vWAF) để phát hiện và chặn các payload RSC bất thường hoặc các yêu cầu POST có tiêu đề
Next-Resume: 1.
Sự xuất hiện liên tiếp của các lỗ hổng này cho thấy giai đoạn trưởng thành đầy thách thức của RSC. Tấn Phát Digital khuyến nghị các doanh nghiệp thực hiện rà soát và nâng cấp hệ thống ngay lập tức để đảm bảo tính sẵn sàng của dịch vụ trước các kịch bản tấn công DoS ngày càng tinh vi.









