Fortinet FortiWeb tiếp tục đối mặt với lỗ hổng tấn công từ xa mà không cần xác thực - CVE‑2025‑25257


Tổng quan
Gần đây một lỗ hổng cực kỳ nghiêm trọng đã được Fortinet cảnh báo với mã định danh: CVE‑2025‑25257 và đã có PoC được công khai trên mạng gây ra rất nhiều rủi ro cho các sản phẩm Fortinet. Lỗ hổng này cho phép tin tặc thực thi mã từ xa mà không cần xác thực (pre‑auth RCE).
Một khi có quyền ghi file hệ thống thì tin tặc sẽ có thể:
Triển khai backdoor vĩnh viễn
Thay đổi cấu hình WAF
Phá hoại hoặc chuyển hướng lưu lượng của ứng dụng được bảo vệ
Mô tả lỗ hổng
Mã lỗ hổng: CVE‑2025‑25257
Điểm CVSS: 9.6/10, cho thấy mức độ cực kỳ nghiêm trọng
Phạm vi ảnh hưởng: Lỗ hổng này ảnh hưởng đến hầu hết các phiên bản 7.x.x
FortiWeb 7.0.0 đến 7.0.10
FortiWeb 7.2.0 đến 7.2.10
FortiWeb 7.4.0 đến 7.4.7
FortiWeb 7.6.0 đến 7.6.3
Cơ chế tấn công: Kẻ tấn công có thể thực hiện Remote Code Execution mà không cần xác thực (pre-auth), thông qua API
/api/fabric/device/status
và điều này là cực kỳ nguy hiểm nếu thiết bị public Internet.Hậu quả: Khi thực thi thành công lỗ hổng có thể cho phép kẻ tấn công kiểm soát hoàn toàn WAF.
Chi tiết lỗ hổng
Như đã đề cập bên trên thì lỗ hổng này liên quan tới SQL Injection không cần xác thực (CWE‑89) trên endpoint Fabric Connector. Chính vì thế đầu tiên kẻ tấn công sẽ thực hiện khởi tạo class SQLInjection
và tiến hành gửi các payload SQL trong header Bearer
Trong trường hợp nếu các Payload trên trả về 200 hoặc server trả về HTTP 401 (lỗi xác thực nhưng không báo lỗi cú pháp SQL) thì tức là có thể tiếp tục khai thác các bước sau đó để leo thang.
Sau khi đã kiểm tra có thể thực hiện được các Payload Sql Injection, kẻ tấn công tiếp tục khai thác RCE – đây là một phần RCE
kế thừa từ SQLInjection
. Tại đây kẻ tấn công sẽ thực hiện tạo bảng fabric_user.a
để chứa các dữ liệu webshell và ghi từng thành phần shell vào bảng
Sau đó kẻ tấn công sẽ ghi tất cả và xuất thành một file thực thi shell x.cgi
Sau đó một đoạn mã script Python sẽ được chạy bởi FortiWeb khi CGI trigger. Đây là một “gadget” để làm chmod +x + xoá dấu vết khi thực thi nhằm khó phát hiện bởi các nhà điều tra, đoạn mã đó sẽ được đặt trong thư mục FortiWeb sẽ auto chạy nó.
Cuối cùng kẻ tấn công sẽ thực hiện gửi lệnh tới shell bằng HTTP qua header User-Agent
. Chính vì MySQL chạy dưới quyền root cho nên dẫn đến exploit có thể ghi file ở bất cứ đâu. Và đương nhiên nếu web shell hoặc script được chạy dưới root, kẻ tấn công sẽ chiếm quyền hệ thống hoàn toàn.
Kết luận
CVE‑2025‑25257 là một lỗ hổng rất nghiêm trọng trong đó kẻ tấn công sẽ thực hiện remote code execution trước khi xác thực, cho phép kiểm soát hoàn toàn hệ thống WAF. Nguy hiểm hơn là hiện tại POC đã có trên mạng chính vì thế mà nguy cơ cá nhân hoặc các tổ chức bị khai thác tích cực đang ở mức cao.
Các admin phải ưu tiên vá hệ thống ngay lập tức và triển khai các biện pháp giảm thiểu nếu chưa thể vá kịp. Việc bảo vệ WAF không chỉ bảo vệ ứng dụng mà còn bảo vệ cả mạng cơ sở hạ tầng của bạn.
Khuyến nghị
- Cập nhật phần mềm (Patching) – BẮT BUỘC
Cập nhật FortiWeb ngay lên một trong các phiên bản đã vá:
7.0.11
7.2.11
7.4.8
7.6.4
Link cập nhật phần mềm: Updating the firmware | FortiWeb 7.6.4 | Fortinet Document Library
- Biện pháp tạm thời nếu chưa thể vá ngay
Vô hiệu hóa giao diện HTTP/HTTPS quản trị để chặn truy cập “pre-auth” đến endpoint
/api/fabric/device/status
.Sử dụng tường lửa để chặn IP công cộng truy cập API Fabric.
Tham khảo
Subscribe to my newsletter
Read articles from Lưu Tuấn Anh directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
