- Giới thiệu tổng quan
Next.js là một trong những framework phổ biến nhất dành cho các ứng dụng web hiện đại, sử dụng React để xây dựng các trang web động và tĩnh. Tuy nhiên, vào năm 2025, một lỗ hổng nghiêm trọng đã được phát hiện trong Middleware của Next.js, được gán mã định danh . Lỗ hổng này có thể cho phép kẻ tấn công thực thi mã từ xa (Remote Code Execution – RCE) thông qua các request độc hại, ảnh hưởng nghiêm trọng đến tính bảo mật của hàng nghìn trang web đang sử dụng Next.js.

- Thực trạng khai thác lỗ hổng
Lỗ hổng CVE-2025-29927 bắt nguồn từ cách Middleware của Next.js xử lý các request HTTP. Cụ thể, lỗi này xuất hiện khi ứng dụng web:
- Cho phép các request chưa được xác thực đi qua Middleware mà không có kiểm tra chặt chẽ.
- Không lọc hoặc xác thực các giá trị đầu vào từ request trước khi sử dụng trong các hàm xử lý logic động.
- Sử dụng dynamic route matching mà không có biện pháp ngăn chặn các payload độc hại.
Những kẻ tấn công có thể khai thác lỗ hổng bằng cách gửi các request đặc biệt chứa mã độc hại vào Middleware. Nếu không được xử lý đúng cách, ứng dụng có thể thực thi các đoạn mã trái phép, dẫn đến hậu quả nghiêm trọng như đánh cắp dữ liệu, chiếm quyền điều khiển hệ thống hoặc thực hiện các hành vi tấn công chuỗi cung ứng.
Một số tình huống khai thác lỗ hổng:
- Tấn công vào một nền tảng thương mại điện tử: Một trang web thương mại điện tử sử dụng Next.js có thể bị tấn công bằng cách gửi các request độc hại vào Middleware. Kết quả là tin tặc chiếm quyền điều khiển hệ thống, thay đổi giá sản phẩm và đánh cắp dữ liệu thanh toán của khách hàng.
- Website ngân hàng bị xâm nhập: Một hệ thống ngân hàng sử dụng Next.js để hiển thị thông tin giao dịch có thể bị khai thác lỗ hổng này. Kẻ tấn công sử dụng RCE để cấy mã độc, thu thập dữ liệu đăng nhập của khách hàng.
- Chuỗi cung ứng phần mềm bị ảnh hưởng: Một công ty SaaS phát triển ứng dụng trên Next.js có thể bị khai thác lỗ hổng Middleware, dẫn đến việc phần mềm của họ trở thành nguồn lây nhiễm mã độc cho khách hàng.
- Mức độ ảnh hưởng
Đánh giá theo thang điểm CVSS
Lỗ hổng này có mức độ nghiêm trọng cao, được đánh giá theo thang điểm CVSS v3.1:
- Điểm tổng thể: 9.8/10 (Critical)
- Tác động về tính bảo mật:
- Tính toàn vẹn: Cao (Có thể thay đổi hoặc xóa dữ liệu)
- Tính bảo mật: Cao (Có thể đánh cắp thông tin nhạy cảm)
- Khả năng khai thác từ xa: Có (Không cần xác thực)
- Mức độ phức tạp: Thấp (Có thể khai thác dễ dàng)
Lỗ hổng này có mức độ ảnh hưởng nghiêm trọng với các tác động sau:
- Tấn công từ xa (RCE): Kẻ tấn công có thể thực thi mã độc mà không cần quyền truy cập hệ thống.
- Chiếm quyền điều khiển máy chủ: Nếu khai thác thành công, tin tặc có thể chiếm quyền điều khiển toàn bộ máy chủ chạy ứng dụng Next.js.
- Đánh cắp thông tin nhạy cảm: Các API endpoint có thể bị khai thác để lấy cắp dữ liệu người dùng.
- Tấn công chuỗi cung ứng: Nếu ứng dụng web bị tấn công, các hệ thống liên kết cũng có nguy cơ bị ảnh hưởng.
- Phá hoại hoặc thay đổi nội dung trang web: Kẻ tấn công có thể sửa đổi giao diện hoặc thêm nội dung độc hại nhằm lừa đảo người dùng.
- Ảnh hưởng đến uy tín và kinh doanh: Các doanh nghiệp bị tấn công có thể mất lòng tin từ khách hàng và đối tác.
Do mức độ nghiêm trọng của lỗ hổng, các tổ chức đang sử dụng Next.js được khuyến cáo áp dụng các biện pháp phòng ngừa ngay lập tức.
- Giải pháp phòng chống và khắc phục
a) Cập nhật phiên bản Next.js
Với sự phát hiện của lỗ hổng CVE-2025-29927, nhóm phát triển Next.js đã phát hành bản vá trong phiên bản Next.js 14.2.3. Việc cập nhật này đảm bảo rằng các lỗi bảo mật đã được khắc phục, giúp ngăn chặn các cuộc tấn công khai thác lỗ hổng.
b) Kiểm soát Middleware chặt chẽ
Middleware đóng vai trò quan trọng trong việc xử lý request, vì vậy cần đảm bảo rằng các biện pháp kiểm soát bảo mật được thực thi nghiêm ngặt:
- Hạn chế các request không xác thực truy cập vào Middleware.
- Sử dụng strict mode trong Middleware để giới hạn quyền truy cập.
- Lọc và xác thực tất cả đầu vào từ người dùng trước khi sử dụng trong logic xử lý.
- Áp dụng các bộ lọc IP để ngăn chặn request từ các địa chỉ IP đáng ngờ.
- Thực hiện cơ chế kiểm tra chữ ký số (JWT, OAuth) nhằm đảm bảo chỉ các request hợp lệ mới được xử lý.
c) Áp dụng Content Security Policy (CSP)
CSP giúp ngăn chặn thực thi mã độc từ nguồn không đáng tin cậy. Cấu hình CSP nên được thiết lập cẩn thận để hạn chế các nguy cơ tấn công. Ngoài ra, cần tránh sử dụng ‘unsafe-inline’ và ‘unsafe-eval’ trong chính sách CSP để giảm thiểu nguy cơ thực thi mã độc.
d) Giám sát và phát hiện tấn công
Việc giám sát liên tục giúp phát hiện sớm các cuộc tấn công tiềm ẩn. Một số biện pháp giám sát cần triển khai:
- WAF (Web Application Firewall) để chặn các request độc hại.
- IDS/IPS (Intrusion Detection/Prevention Systems) để phát hiện dấu hiệu khai thác lỗ hổng.
- Logging & Monitoring để theo dõi các request bất thường.
- Sử dụng AI/ML để phát hiện hành vi bất thường: Các hệ thống bảo mật dựa trên trí tuệ nhân tạo có thể giúp nhận diện những hành vi đáng ngờ và cảnh báo kịp thời.
- Kiểm tra bảo mật định kỳ (Penetration Testing): Thực hiện kiểm thử bảo mật thường xuyên để xác định các điểm yếu có thể bị khai thác.
Lỗ hổng CVE-2025-29927 là một vấn đề nghiêm trọng, có thể dẫn đến những cuộc tấn công nguy hiểm vào hệ thống web. Việc cập nhật phiên bản mới nhất, triển khai các biện pháp bảo vệ Middleware, và áp dụng các chính sách bảo mật chặt chẽ sẽ giúp giảm thiểu rủi ro. Các tổ chức cần hành động ngay để ngăn chặn nguy cơ khai thác lỗ hổng này.