React2Shell là một trong những lỗ hổng nghiêm trọng nhất được công bố gần đây, ảnh hưởng trực tiếp đến các ứng dụng React và Next.js. Việc khai thác chỉ cần một HTTP request đơn lẻ, cho phép kẻ tấn công thực thi mã tùy ý và chiếm toàn quyền kiểm soát máy chủ. Nếu bạn vận hành máy chủ chạy React/Next.js, việc kiểm tra và xử lý ngay lập tức là bắt buộc để tránh nguy cơ bị tấn công, đánh cắp dữ liệu hoặc phá hoại hệ thống.
Mức độ nguy hiểm
- Mã định danh: CVE-2025-55182 (React) và CVE-2025-66478 (Next.js).
- Mức độ: Rất Nghiêm trọng (Critical).
React2Shell là lỗ hổng không yêu cầu xác thực (Unauthenticated) và có thể bị khai thác từ xa. Chỉ bằng một HTTP request được tạo thủ công, kẻ tấn công có thể thực hiện các hành vi nguy hiểm sau:
- Thực thi mã từ xa (RCE): Chạy mã JavaScript tùy ý trên máy chủ với quyền hạn của tiến trình cao nhất, thường là quyền root.
- Chiếm quyền điều khiển máy chủ: Cài đặt mã độc, backdoor để truy cập trong tương lai, lợi dụng tài nguyên máy chủ để đào tiền ảo, cài đặt botnet Mirai để thực hiện tấn công DDoS quy mô lớn.
- Phá hoại và đánh cắp dữ liệu: Đánh cắp thông tin nhạy cảm (dữ liệu người dùng, mã nguồn, khóa bí mật), phá hoại toàn bộ hệ thống hoặc sử dụng máy chủ bị chiếm quyền làm bàn đạp để tấn công các mục tiêu khác trong mạng nội bộ.

Các phiên bản bị ảnh hưởng và bản vá an toàn
Điều quan trọng nhất là phải xác định chính xác phiên bản bạn đang sử dụng. Dưới đây là bảng tóm tắt các phiên bản có chứa lỗ hổng và các phiên bản đã được vá lỗi an toàn.
| Đối tượng | Phiên bản có lỗ hổng | Phiên bản an toàn |
|---|---|---|
| Reaction (Core) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| Next.js (framework) | 15.x, 16.x, 14.3.0-canary.77+ | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
| Canary Builds | > 14.3.0-canary.77 | Hạ phiên bản về Next.js 14.x và chờ có bản vá. |
Hướng dẫn kiểm tra và xác định lỗ hổng
1. Phát hiện dấu hiệu bị chiếm quyền
Nếu máy chủ của bạn rơi vào một trong những tình huống dưới đây, khả năng cao là đã bị chiếm quyền kiểm soát:
- Phát hiện các tiến trình lạ tiêu tốn nhiều tài nguyên CPU: Sử dụng các lệnh như
tophoặchtopđể kiểm tra. Nếu thấy các tiến trình có tên lạ (ví dụ: kdevtmpfsi, kinsing, hoặc các chuỗi ký tự ngẫu nhiên) chiếm dụng CPU ở mức cao, đây là một dấu hiệu đáng báo động. - Phát hiện các file lạ được tạo gần đây: Kẻ tấn công thường tạo file thực thi hoặc file cấu hình trong các thư mục tạm hoặc thư mục cron. Sử dụng lệnh
findđể kiểm tra các file được tạo sau thời điểm lỗ hổng được công bố rộng rãi (ví dụ, mốc thời gian 29/11/2025).
Lệnh kiểm tra:
find /tmp /etc/cron* -type f -newermt "2025-11-29" -ls

2. Trường hợp dùng Docker với Node/ReactJS
Thực hiện lệnh sau để kiểm tra các container đang chạy:
docker ps -q | xargs -I {} sh -c 'docker exec {} npm list react' 2>/dev/null
3. Kiểm tra phiên bản React/Next.js đang sử dụng
So sánh phiên bản hiện tại của thư viện bạn đang sử dụng với bảng các phiên bản bị ảnh hưởng ở trên:
| Đối tượng | Phiên bản có lỗ hổng |
|---|---|
| Reaction (Core) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| Next.js (framework) | 15.x, 16.x, 14.3.0-canary.77+ |
| Canary Builds | > 14.3.0-canary.77 |
Hướng xử lý và khắc phục
Nếu bạn xác định máy chủ của mình có nguy cơ hoặc đã bị tấn công, bạn hãy hành động ngay lập tức theo các bước sau:
- Backup dữ liệu: Lập tức sao lưu toàn bộ dữ liệu quan trọng (cơ sở dữ liệu, mã nguồn, file người dùng tải lên) ra một nơi an toàn, tách biệt với máy chủ hiện tại.
- Cập nhật phiên bản: Nâng cấp ngay lập tức thư viện React và/hoặc Next.js lên các phiên bản an toàn đã được liệt kê ở trên. Đây là bước bắt buộc để vá lỗ hổng.
- Xử lý máy chủ đã bị chiếm quyền: Nếu máy chủ có bất kỳ dấu hiệu nào đã bị xâm nhập (compromised), việc chỉ cập nhật phiên bản là không đủ. Kẻ tấn công có thể đã cài cắm backdoor. Biện pháp an toàn và triệt để nhất là cài đặt lại toàn bộ hệ điều hành từ một nguồn sạch, sau đó khôi phục dữ liệu từ bản sao lưu.
React2Shell là mối đe dọa ở mức cực kỳ nghiêm trọng, tác động trực tiếp đến hệ thống ứng dụng và dữ liệu doanh nghiệp. Việc kiểm tra, phát hiện sớm và nâng cấp phiên bản an toàn là điều bắt buộc để bảo vệ máy chủ của bạn. Hãy chủ động rà soát hệ thống, backup dữ liệu thường xuyên và cập nhật phần mềm kịp thời để hạn chế tối đa rủi ro bị tấn công.














Cám ơn chia sẻ của Hưng. Mình cũng mới phát hiện bị dính malware hôm qua với website sử dụng Nextjs tại Vietnix. Nếu được, bạn cung cấp hướng dẫn chi tiết thêm cách kiểm tra và khắc phục và các câu lệnh. Ví dụ kiểm tra phiên bản hay… Đọc tiếp »