Khi kiểm toán bảo mật trang web khách hàng, tôi phát hiện lỗ hổng reflected cross-site scripting trong plugin WordPress LMS của LearnDash. Tất cả trang WordPress dùng LearnDash từ phiên bản 3.0.0 đến 3.1.1 bị ảnh hưởng.
CVE ID: CVE-2020-7108
CWE ID: CWE-79
Tóm Tắt
LearnDash là một trong những plugin WordPress LMS phổ biến và dễ dùng nhất. Cho phép tạo khóa học và bán online dễ dàng với lượng khách hàng lớn. Lỗ hổng XSS trong LearnDash có thể khai thác chống lại user đã xác thực để thực hiện hành động độc hại: đánh cắp session cookie hoặc credential, thực hiện hành động tùy ý thay mặt nạn nhân, ghi keystroke, v.v.
Lỗ Hổng
Khi user đăng nhập trang WordPress cài LearnDash dễ bị tấn công, XSS payload có thể chèn vào hộp Search Your Courses. Payload thực thi vì input user không được validate đúng.
Kết quả, truyền XSS payload作为 query string trong URL cũng thực thi payload.
[wordpress website][learndash my-account page]?ld-profile-search=%3Cscript%3Ealert(document.cookie)%3C/script%3E

Kẻ tấn công có thể sửa URL trên và dùng payload nâng cao để thực hiện hành động độc hại.
Timeline
Báo cáo lỗ hổng cho team LearnDash – 14/01/2020
Phiên bản LearnDash 3.1.2 chứa bản vá phát hành cùng ngày.
Khuyến Nghị
Rất khuyến nghị cập nhật plugin lên phiên bản mới nhất. Nếu dùng Astra Security Suite, bạn được bảo vệ khỏi lỗ hổng này.
Để thực hành bảo mật tốt nhất, tham khảo:
- Hướng Dẫn Bảo Mật WordPress
- WordPress Hack và Loại Bỏ Mã Độc
Tham Khảo
WPVulnDB
CVE MITRE