-
09/04/2020
-
122
-
1.385 bài viết
Lỗ hổng “React2Shell” đe dọa gần một triệu máy chủ web React và Next.js toàn cầu
Một lỗ hổng bảo mật vừa được phát hiện trong React Server Components (RSC), công nghệ được sử dụng rộng rãi trong các ứng dụng web hiện đại. Lỗi này, mã CVE-2025-55182 với CVSS 10 và được đặt tên là React2shell, cho phép hacker thực thi mã độc từ xa mà không cần đăng nhập. Đây là cú sốc lớn với cộng đồng lập trình bởi React và Next.js đang là nền tảng chủ lực cho hàng loạt dịch vụ trực tuyến.
Vấn đề nằm trong cách React xử lý “payload” gửi tới các React Server Function (thành phần cốt lõi của RSC). Ngay cả khi ứng dụng không dùng Server Function, chỉ cần hỗ trợ RSC là vẫn có nguy cơ bị tấn công.
Theo phân tích từ Wiz và Aikido, nguyên nhân xuất phát từ quy trình giải mã dữ liệu không an toàn của giao thức React Flight. Kẻ tấn công chỉ cần gửi một yêu cầu HTTP với payload tùy chỉnh là máy chủ có thể chạy mã JavaScript độc hại.
Đây là dạng tấn công “master key”, không khai thác lỗi phần mềm truyền thống mà lợi dụng niềm tin của hệ thống vào dữ liệu đầu vào. Kẻ tấn công không cần tài khoản, không cần cấu hình đặc biệt. Chỉ cần truy cập mạng và gửi yêu cầu HTTP.
Theo Palo Alto Networks Unit 42, hơn 968.000 máy chủ chạy React/Next.js đang phơi nhiễm. Wiz cho biết 39% môi trường cloud bị ảnh hưởng trực tiếp.
Lỗ hổng tác động các phiên bản 19.0 -19.2.0 của:
Next.js cũng bị ảnh hưởng qua lỗ hổng riêng CVE-2025-66478 (CVSS 10), xuất hiện từ các phiên bản 14.3.0-canary.77, 15, 16 và được khắc phục trong các bản 16.0.7 trở về trước. Nhiều hệ sinh thái liên quan như Vite RSC plugin, Parcel RSC plugin, RedwoodJS, Waku,… cũng có nguy cơ.
Nếu bị khai thác, hacker có thể:
Các chuyên gia khuyến cáo triển khai ngay lập tức:
Vấn đề nằm trong cách React xử lý “payload” gửi tới các React Server Function (thành phần cốt lõi của RSC). Ngay cả khi ứng dụng không dùng Server Function, chỉ cần hỗ trợ RSC là vẫn có nguy cơ bị tấn công.
Theo phân tích từ Wiz và Aikido, nguyên nhân xuất phát từ quy trình giải mã dữ liệu không an toàn của giao thức React Flight. Kẻ tấn công chỉ cần gửi một yêu cầu HTTP với payload tùy chỉnh là máy chủ có thể chạy mã JavaScript độc hại.
Đây là dạng tấn công “master key”, không khai thác lỗi phần mềm truyền thống mà lợi dụng niềm tin của hệ thống vào dữ liệu đầu vào. Kẻ tấn công không cần tài khoản, không cần cấu hình đặc biệt. Chỉ cần truy cập mạng và gửi yêu cầu HTTP.
Theo Palo Alto Networks Unit 42, hơn 968.000 máy chủ chạy React/Next.js đang phơi nhiễm. Wiz cho biết 39% môi trường cloud bị ảnh hưởng trực tiếp.
Lỗ hổng tác động các phiên bản 19.0 -19.2.0 của:
- react-server-dom-webpack
- react-server-dom-parcel
- react-server-dom-turbopack
Next.js cũng bị ảnh hưởng qua lỗ hổng riêng CVE-2025-66478 (CVSS 10), xuất hiện từ các phiên bản 14.3.0-canary.77, 15, 16 và được khắc phục trong các bản 16.0.7 trở về trước. Nhiều hệ sinh thái liên quan như Vite RSC plugin, Parcel RSC plugin, RedwoodJS, Waku,… cũng có nguy cơ.
Nếu bị khai thác, hacker có thể:
- Chạy mã độc trên máy chủ
- Chiếm toàn quyền kiểm soát hệ thống
- Đánh cắp dữ liệu, tiêm mã độc, cài backdoor
- Phát tán tấn công sang các dịch vụ liên quan
Các chuyên gia khuyến cáo triển khai ngay lập tức:
- Cập nhật bản vá mới nhất của React và Next.js
- Áp dụng WAF để chặn payload bất thường
- Theo dõi log HTTP tới Server Function endpoint
- Hạn chế truy cập mạng vào ứng dụng đang bị ảnh hưởng
- Kiểm tra gói npm và các plugin RSC trong dự án
WhiteHat
