Chiến dịch mã độc PCPcat: Khai thác lỗ hổng Next.js và React để xâm nhập hàng chục nghìn máy chủ chỉ trong 48 giờ

Một chiến dịch mã độc mới có tên PCPcat đang gây chú ý trong cộng đồng an ninh mạng sau khi xâm nhập thành công hơn 59.000 máy chủ chỉ trong vòng chưa đầy 48 giờ. Chiến dịch này nhắm trực tiếp vào các hệ thống sử dụng Next.js và React, thông qua việc khai thác các lỗ hổng nghiêm trọng cho phép thực thi mã từ xa (Remote Code Execution – RCE) mà không cần xác thực.
Khai thác lỗ hổng nghiêm trọng trong Next.js
PCPcat tập trung tấn công các triển khai Next.js bằng cách khai thác hai lỗ hổng bảo mật nguy hiểm:
CVE-2025-29927
CVE-2025-66478
Cả hai lỗ hổng đều cho phép kẻ tấn công thực thi mã tùy ý trên máy chủ mục tiêu mà không cần đăng nhập hay bất kỳ cơ chế xác thực nào. Điều này khiến các ứng dụng Next.js public-facing trở thành mục tiêu lý tưởng cho các cuộc tấn công tự động ở quy mô lớn.
Kỹ thuật tấn công: Prototype Pollution kết hợp Command Injection
Chiến dịch sử dụng sự kết hợp giữa:
Prototype Pollution: thao túng chuỗi prototype của JavaScript
Command Injection: chèn và thực thi lệnh hệ thống
Thông qua một payload JSON được thiết kế đặc biệt, PCPcat có thể tiêm mã vào luồng xử lý nội bộ của Next.js, từ đó gọi trực tiếp các hàm thực thi lệnh của hệ điều hành.
Tỷ lệ thành công bất thường
Theo phân tích, chiến dịch PCPcat đạt tỷ lệ thành công lên tới 64,6%, một con số rất cao so với các chiến dịch khai thác hàng loạt thông thường. Mã độc liên tục:
Quét các ứng dụng Next.js công khai trên Internet
Kiểm tra 2.000 mục tiêu trong mỗi đợt
Lặp lại chu trình quét mỗi 30–60 phút
Cách tiếp cận này cho phép PCPcat nhanh chóng mở rộng phạm vi lây nhiễm và duy trì áp lực tấn công liên tục.
Hạ tầng điều khiển và chỉ huy (C2 Infrastructure)
Chiến dịch được điều phối thông qua một máy chủ C2 đặt tại Singapore, hoạt động trên ba cổng chính:
| Cổng | Chức năng |
| 666 | Phân phối payload và mã độc |
| 888 | Thiết lập reverse tunnel |
| 5656 | Máy chủ điều khiển trung tâm, phân phối mục tiêu và thu thập dữ liệu |
Trong quá trình giám sát Docker honeypot, các nhà nghiên cứu đã xác định được toàn bộ hạ tầng C2 thông qua hoạt động trinh sát trực tiếp máy chủ điều khiển của mã độc.
Quy trình tấn công chi tiết
1. Kiểm tra lỗ hổng
Theo các chuyên gia tại Beelzebub Security, PCPcat trước tiên gửi một lệnh đơn giản tới máy chủ mục tiêu để xác minh khả năng khai thác. Nếu lệnh thực thi thành công, máy chủ được đánh dấu là “vulnerable”.
2. Khai thác và thu thập dữ liệu
Khi xác định được máy chủ dễ bị tấn công, mã độc bắt đầu thu thập hàng loạt dữ liệu nhạy cảm, bao gồm:
File
.envchứa biến môi trườngThông tin xác thực cloud (AWS, GCP, Azure)
SSH private keys
Lịch sử lệnh (
.bash_history,.zsh_history)Cấu hình Docker và Git
Các file nhạy cảm như
/etc/shadow,/etc/paswd
Toàn bộ dữ liệu bị đánh cắp được gửi về C2 thông qua các request HTTP đơn giản, không yêu cầu xác thực, giúp giảm thiểu khả năng bị phát hiện.
Cơ chế khai thác và thực thi mã
PCPcat sử dụng một payload JSON thao túng prototype của JavaScript như sau:
{
"then": "$1:__proto__:then",
"status": "resolved_model",
"_response": {
"_prefix": "var res=process.mainModule.require('child_process')
.execSync('COMMAND_HERE').toString();"
}
}
Payload này buộc máy chủ Next.js thực thi bất kỳ lệnh hệ thống nào do kẻ tấn công chỉ định. Kết quả thực thi được trả về thông qua redirect header được định dạng đặc biệt, cho phép mã độc trích xuất dữ liệu mà không gây ra dấu hiệu bất thường ngay lập tức trong log ứng dụng.
Duy trì truy cập lâu dài (Persistence)
Sau khi đánh cắp thông tin xác thực, PCPcat tiếp tục:
Tải xuống script bổ sung
Cài đặt GOST proxy và FRP reverse tunneling
Hai công cụ này giúp tạo các kênh liên lạc ngầm, cho phép kẻ tấn công duy trì quyền truy cập ngay cả khi lỗ hổng ban đầu đã được vá.
Để đảm bảo persistence:
Mã độc tạo nhiều systemd service
Các service này tự động khởi động lại khi bị dừng hoặc khi máy chủ reboot
Payload được cài ở nhiều vị trí khác nhau nhằm tránh bị xóa hoàn toàn trong quá trình cleanup
Dấu hiệu nhận biết và khuyến nghị phòng thủ
Phía FPT Threat Intelligence khuyến nghị các uản trị viên hệ thống có thể phát hiện hoạt động của PCPcat bằng cách:
Giám sát kết nối tới IP 67.217.57.240 trên các cổng 666, 888, 5656
Kiểm tra các systemd service có tên chứa chuỗi
pcpcatTheo dõi lưu lượng outbound bất thường chứa JSON có biến môi trường hoặc thông tin xác thực
Rà soát các máy chủ Next.js chưa được cập nhật bản vá bảo mật mới nhất
Kết luận
PCPcat cho thấy mức độ tự động hóa, tốc độ lây lan và khả năng duy trì truy cập cực kỳ nguy hiểm, đặc biệt đối với các hệ thống web hiện đại sử dụng JavaScript framework phổ biến. Chiến dịch này là lời cảnh báo rõ ràng về tầm quan trọng của việc vá lỗi kịp thời, giám sát hành vi bất thường và bảo vệ thông tin xác thực ở tầng ứng dụng.






