Tan Phat Media

Phân tích lỗ hổng DoS trong React Server Components & Next.js (2026)

29 tháng 1, 2026
1.532
Technology
Phân tích lỗ hổng DoS trong React Server Components & Next.js (2026) - Tấn Phát Digital

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-parcelreact-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/image tả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

  1. Hạ tầng: Thiết lập client_max_body_size tại Proxy (Nginx/Apache) để ngăn chặn buffering không giới hạn.

  2. Cấu hình: Hạn chế hoặc xóa bỏ các tên miền không tin cậy trong remotePatterns của Image Optimizer.

  3. 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.

  4. 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.

Bài viết liên quan

Hình ảnh đại diện của bài viết: Augment Code là gì? Hướng dẫn AI lập trình 2025

Augment Code là gì? Hướng dẫn AI lập trình 2025

Augment Code là gì? Công cụ AI hỗ trợ lập trình giúp developer tăng tốc độ code, giảm lỗi và tối ưu dự án. Phân tích chi tiết bởi Tấn Phát Digital.

Hình ảnh đại diện của bài viết: Cách Lấy Email Tên Miền Miễn Phí (2025) | Hướng Dẫn A–Z

Cách Lấy Email Tên Miền Miễn Phí (2025) | Hướng Dẫn A–Z

Hướng dẫn 2025 lấy email tên miền miễn phí: Zoho Mail (inbox thật), Cloudflare Email Routing/ImprovMX (chuyển tiếp), kèm SPF/DKIM/DMARC để tăng tỉ lệ vào inbox. Triển khai đồng bộ thương hiệu với Tấn Phát Digital.

Hình ảnh đại diện của bài viết: Cách Tối Ưu Hóa Hình Ảnh Cho SEO – Tối Ưu Tốc Độ, Nâng Thứ Hạng Google

Cách Tối Ưu Hóa Hình Ảnh Cho SEO – Tối Ưu Tốc Độ, Nâng Thứ Hạng Google

Hướng dẫn chi tiết cách tối ưu hóa hình ảnh cho SEO: Checklist 7 kỹ thuật hiệu quả nhất giúp website tải nhanh, tăng thứ hạng Google.

Hình ảnh đại diện của bài viết: CDN Là Gì? Tại Sao Website Hiện Đại Cần Dùng CDN

CDN Là Gì? Tại Sao Website Hiện Đại Cần Dùng CDN

Tìm hiểu CDN là gì và tại sao website hiện đại cần dùng CDN. Giải pháp giúp tăng tốc độ tải trang, cải thiện SEO và bảo mật hiệu quả cho doanh nghiệp nhỏ.

Hình ảnh đại diện của bài viết: Chi Phí Duy Trì Website Hàng Năm: Hosting, Tên Miền, Bảo Trì & Hơn Thế Nữa

Chi Phí Duy Trì Website Hàng Năm: Hosting, Tên Miền, Bảo Trì & Hơn Thế Nữa

Tìm hiểu chi tiết về các khoản chi phí duy trì website hàng năm, bao gồm hosting, tên miền, bảo trì, bảo mật, và nhiều hơn nữa. Khám phá cách Tấn Phát Digital có thể giúp bạn quản lý và tối ưu hóa website một cách hiệu quả.

Hình ảnh đại diện của bài viết: Domain Là Gì? Cách Chọn Tên Miền Đẹp, Chuẩn SEO

Domain Là Gì? Cách Chọn Tên Miền Đẹp, Chuẩn SEO

Tên miền không chỉ là địa chỉ website mà còn là tài sản chiến lược quan trọng nhất trong việc định hình danh tính số. Tìm hiểu ngay cách chọn domain tối ưu cùng chuyên gia Tấn Phát Digital.

Hình ảnh đại diện của bài viết: Google Gemini 3.1 Pro Ra Mắt: Đột Phá Tư Duy Logic & Ứng Dụng Thực Tế

Google Gemini 3.1 Pro Ra Mắt: Đột Phá Tư Duy Logic & Ứng Dụng Thực Tế

Bước nhảy vọt từ Gemini 3 Deep Think đến 3.1 Pro: Khi trí tuệ AI không chỉ dừng lại ở câu trả lời mà trở thành giải pháp thực thi phức tạp.

Hình ảnh đại diện của bài viết: Hướng Dẫn Tạo & Gửi Sơ Đồ Website XML Lên Google Search Console

Hướng Dẫn Tạo & Gửi Sơ Đồ Website XML Lên Google Search Console

Hướng dẫn tạo sơ đồ website XML và gửi lên Google Search Console trong vài bước. Tìm hiểu vai trò của Sitemap trong SEO và cách Tấn Phát Digital hỗ trợ bạn có website chuẩn SEO ngay từ đầu.

Zalo
Facebook
Tấn Phát Digital
Zalo
Facebook