WP Statistics, một plugin được cài đặt trên hơn 600.000 trang blog trên WordPress, có lỗ hổng bảo mật SQL-injection cho phép tin tặc có được thông tin nhạy cảm từ CSDL web, bao gồm email, dữ liệu thẻ tín dụng, mật khẩu...
WP Statistics - như tên gọi, đây là một plugin (trình cắm) cung cấp các phân tích dữ liệu cho chủ sở hữu blog, bao gồm số lượng người truy cập trang, truy cập đến từ đâu, sử dụng trình duyệt và công cụ tìm kiếm nào, cũng như các trang, danh mục và thẻ có lượt truy cập nhiều nhất. WP Statistics còn cung cấp dữ liệu ẩn danh xung quanh địa chỉ IP, tất cả được trình bày dưới dạng biểu đồ và đồ thị dễ hiểu.
Các nhà nghiên cứu của Wordfence đã tìm thấy lỗi có mức độ nghiêm trọng cao (được theo dõi là CVE-2021-24340, xếp hạng 7,5/10 trên thang điểm CVSS) trong chức năng "Trang" (Pages), cho phép quản trị viên xem trang nào nhận được nhiều lưu lượng truy cập nhất. Ở chức năng này, WP Statistics trả về dữ liệu bằng cách sử dụng các truy vấn SQL đến CSDL back-end - nhưng hóa ra điều này cũng cho phép kẻ tấn công có thể chiếm quyền điều khiển để thực hiện các truy vấn của riêng chúng, nhằm lấy thông tin nhạy cảm mà không cần xác thực.
Các nhà nghiên cứu Wordfence cho biết: "Mặc dù 'Pages' chỉ dành cho quản trị viên và sẽ không hiển thị thông tin cho người dùng bình thường, nhưng kẻ xấu có thể tải phương thức khởi tạo 'Pages' bằng cách gửi yêu cầu đến wp-admin/admin.php với tham số trang: wps_pages_page. Vì truy vấn SQL chạy trong phương thức khởi tạo cho 'Pages', điều này có nghĩa là bất kỳ khách truy cập trang web nào, ngay cả những người không có đăng nhập cũng có thể khiến truy vấn SQL này chạy".
Theo các nhà nghiên cứu tại Wordfence, lỗ hổng cụ thể là một phương thức SQL injection, một kỹ thuật lợi dụng những lỗ hổng về câu truy vấn của các ứng dụng. Kỹ thuật này liên quan đến việc gửi các yêu cầu đến CSDL để "đoán" nội dung của bảng CSDL và hướng dẫn CSDL trì hoãn phản hồi hoặc "ngủ" nếu phỏng đoán đó đúng.
Ví dụ, kẻ tấn công có thể truy vấn CSDL xem chữ cái đầu tiên trong địa chỉ email của người quản trị có bắt đầu bằng chữ "A" hay không và yêu cầu nó trì hoãn phản hồi trong 5 giây nếu điều này là đúng.
Theo Wordfence: "Thông tin khai thác là một quá trình tương đối chậm và sẽ không thực tế nếu sử dụng nó để trích xuất hàng loạt hồ sơ, nhưng thông tin có giá trị cao như email người dùng, mật khẩu, khóa mã hóa... có thể được trích xuất trong vài giờ với sự trợ giúp của các công cụ tự động như sqlmap. Trong một cuộc tấn công có chủ đích, lỗ hổng này có thể được sử dụng để trích xuất thông tin nhận dạng cá nhân từ các trang thương mại có chứa thông tin khách hàng. Điều này nhấn mạnh tầm quan trọng của việc có các biện pháp bảo vệ an ninh với tường lửa điểm cuối tại bất kỳ nơi nào dữ liệu nhạy cảm được lưu trữ ".
Các nhà nghiên cứu cho biết thêm, phương pháp đáng tin cậy duy nhất để ngăn chặn SQL injection là chuẩn bị tất cả các câu lệnh SQL trước khi thực thi chúng. Các câu lệnh chuẩn bị tách biệt từng tham số truy vấn để kẻ tấn công không thể nhìn thấy toàn bộ phạm vi dữ liệu được trả về.
VeronaLabs, nhà phát triển của plugin, đã phát hành một bản vá với phiên bản 13.0.8, vì vậy quản trị viên các trang trên WordPress nên cập nhật càng nhanh càng tốt.
Một lỗi tương tự đã được tìm thấy vào thời điểm đầu tháng 5, ảnh hưởng đến plugin "Chống thư rác, AntiSpam, FireWall by CleanTalk", được cài đặt trên hơn 100.000 trang web. Nó cũng cho phép kẻ xấu sử dụng cách tiếp cận bling SQL mà không cần phải đăng nhập để thực hiện một cuộc tấn công.