-
09/04/2020
-
94
-
723 bài viết
Lỗ hổng nghiêm trọng trong WP Ghost – Plugin bảo mật của WordPress
Một lỗ hổng bảo mật nghiêm trọng đã được phát hiện trong plugin WordPress phổ biến- WP Ghost. Với hơn 200.000 lượt cài đặt đang hoạt động, WP Ghost là một plugin bảo mật và tường lửa miễn phí cho trang web WordPress bằng cách bổ sung “nhiều lớp bảo vệ để chặn bot và ngăn chặn truy cập trái phép”.
Đây là lỗ hổng LFI (Local File Inclusion) liên quan đến hàm showFile() của plugin WP Ghost, việc validate không đúng các dữ liệu được gửi trong request dẫn đến kẻ tấn công có thể include file bất kỳ thông qua thay đổi đường dẫn URL. Việc khai thác thành công lỗ hổng này có thể dẫn đến RCE server.
Trong trường hợp của WP Ghost, lỗ hổng này có thể cho phép kẻ tấn công thực thi Remote Code Execution (RCE) trên các hệ thống bị ảnh hưởng. Lỗ hổng đã được gán mã CVE-2025-26909 với điểm CVSS 9.6, cho thấy mức độ nghiêm trọng cao.
Lỗ hổng tồn tại trong hàm showFile, có thể được gọi từ hàm maybeShowNotFound. Hàm maybeShowNotFound được liên kết với hành động template_redirect, nghĩa là nó có thể bị kích hoạt bởi người dùng không xác thực. Nếu một người dùng không xác thực cố gắng truy cập một đường dẫn hoặc tệp tin không tồn tại, hàm maybeShowNotFound sẽ được gọi, sau đó gọi tiếp hàm showFile.
Vấn đề nằm ở cách xử lý biến $new_path trong hàm showFile. Biến này nhận giá trị từ chuỗi hàm getCurrentURL -> getOriginalUrl -> getOriginalPath. Giá trị sau đó được truyền trực tiếp vào hàm require_once mà không có kiểm tra hoặc làm sạch dữ liệu phù hợp.
Việc thiếu xác thực này cho phép kẻ tấn công thực hiện path traversal để đưa các tệp tùy ý vào máy chủ, có thể dẫn đến thực thi mã tùy ý. Các kỹ thuật phổ biến để khai thác LFI thành RCE, chẳng hạn như php:// filter chains và PHP_SESSION_UPLOAD_PROGRESS, có thể được áp dụng.
Lưu ý rằng lỗ hổng này chỉ có thể bị khai thác nếu tính năng “Change Paths” trong WP Ghost được đặt ở chế độ “Lite” hoặc “Ghost”. Tính năng này không được bật theo mặc định.
Lỗ hổng đã được khắc phục trong phiên bản WP Ghost 5.4.02. Người dùng được khuyến nghị cập nhật ngay lập tức lên phiên bản này ngay lập tức.
Đây là lỗ hổng LFI (Local File Inclusion) liên quan đến hàm showFile() của plugin WP Ghost, việc validate không đúng các dữ liệu được gửi trong request dẫn đến kẻ tấn công có thể include file bất kỳ thông qua thay đổi đường dẫn URL. Việc khai thác thành công lỗ hổng này có thể dẫn đến RCE server.
Trong trường hợp của WP Ghost, lỗ hổng này có thể cho phép kẻ tấn công thực thi Remote Code Execution (RCE) trên các hệ thống bị ảnh hưởng. Lỗ hổng đã được gán mã CVE-2025-26909 với điểm CVSS 9.6, cho thấy mức độ nghiêm trọng cao.
Lỗ hổng tồn tại trong hàm showFile, có thể được gọi từ hàm maybeShowNotFound. Hàm maybeShowNotFound được liên kết với hành động template_redirect, nghĩa là nó có thể bị kích hoạt bởi người dùng không xác thực. Nếu một người dùng không xác thực cố gắng truy cập một đường dẫn hoặc tệp tin không tồn tại, hàm maybeShowNotFound sẽ được gọi, sau đó gọi tiếp hàm showFile.
Vấn đề nằm ở cách xử lý biến $new_path trong hàm showFile. Biến này nhận giá trị từ chuỗi hàm getCurrentURL -> getOriginalUrl -> getOriginalPath. Giá trị sau đó được truyền trực tiếp vào hàm require_once mà không có kiểm tra hoặc làm sạch dữ liệu phù hợp.
Việc thiếu xác thực này cho phép kẻ tấn công thực hiện path traversal để đưa các tệp tùy ý vào máy chủ, có thể dẫn đến thực thi mã tùy ý. Các kỹ thuật phổ biến để khai thác LFI thành RCE, chẳng hạn như php:// filter chains và PHP_SESSION_UPLOAD_PROGRESS, có thể được áp dụng.
Lưu ý rằng lỗ hổng này chỉ có thể bị khai thác nếu tính năng “Change Paths” trong WP Ghost được đặt ở chế độ “Lite” hoặc “Ghost”. Tính năng này không được bật theo mặc định.
Lỗ hổng đã được khắc phục trong phiên bản WP Ghost 5.4.02. Người dùng được khuyến nghị cập nhật ngay lập tức lên phiên bản này ngay lập tức.
Theo Security Online