Smart Slider 3 Lỗi Đọc wp-config.php: Subscriber Lấy Được Mật Khẩu Database, Hướng Dẫn Kiểm Tra Và Vá Bằng WP-CLI

Câu trả lời nhanh
Lỗi CVE-2026-3098 trong Smart Slider 3 cho phép bất kỳ user đã đăng nhập, kể cả Subscriber, đọc file wp-config.php qua chức năng export bị thiếu kiểm tra capability. Bản vá là 3.5.1.34. Kiểm tra phiên bản bằng wp plugin get, vá bằng wp plugin update, và nếu nghi bị khai thác thì đổi mật khẩu database, shuffle salts cùng rà admin ảo trong mu-plugins.

Smart Slider 3, plugin tạo slider có hơn 800.000 bản cài đang hoạt động, vừa bị phát hiện lỗi Authenticated Arbitrary File Read mang mã CVE-2026-3098. Đáng lo nhất là lỗi này cho phép tài khoản Subscriber thường thôi cũng đọc được file wp-config.php, tức là lấy trọn thông tin đăng nhập database cùng các key salt của site. Trong bài này mình sẽ đi từ A đến Z: hiểu lỗi hoạt động thế nào, kiểm tra site bạn có dính không bằng WP-CLI, vá đúng cách và rà dấu vết nếu nghi ngờ bị khai thác.

Lỗi CVE-2026-3098 của Smart Slider 3 nguy hiểm như thế nào?

Lỗi bảo mật Smart Slider 3 cho phép đọc file wp-config.php lấy mật khẩu database
Lỗi bảo mật Smart Slider 3 cho phép đọc file wp-config.php lấy mật khẩu database

Đây là lỗi đọc file tùy ý có điều kiện xác thực, nằm ở chức năng export slider của plugin. Cụ thể, hàm actionExportAll() trong class ControllerSliders xử lý việc đóng gói slider thành file ZIP để tải về. Lỗi nằm ở chỗ các AJAX action không kiểm tra capability của người dùng, nên bất kỳ ai đã đăng nhập, kể cả Subscriber với quyền gần như bằng không, cũng gọi được luồng export này.

Chuỗi tấn công diễn ra như sau. Kẻ tấn công đăng ký tài khoản thường (hoặc dùng tài khoản bị lộ mật khẩu), lấy nonce từ trang quản trị, rồi kích hoạt export. Hàm create() đóng gói ZIP không hề kiểm tra loại file được thêm vào, nên thay vì ảnh thì file wp-config.php hoàn toàn có thể nhảy vào archive và bị tải về.

Hệ quả trực tiếp: kẻ tấn công sở hữu credentials database, AUTH_KEY và các salt. Với những thứ này, việc tạo session cookie giả mạo admin hay tấn công trực tiếp database chỉ còn là vấn đề thời gian.

Cách kiểm tra site có đang dùng bản Smart Slider 3 lỗi không?

Bạn cần SSH vào server và dùng WP-CLI. Bản vá là 3.5.1.34 phát hành ngày 24/3/2026, mọi bản cũ hơn đều dính lỗi. Chạy lệnh sau để xem phiên bản đang cài:

sudo -u www-data wp plugin list --path=/var/www/thienlv.com/public_html | grep -i smart-slider
# hoặc chi tiết hơn
sudo -u www-data wp plugin get smart-slider-3 --field=version --path=/var/www/thienlv.com/public_html

Nếu kết quả dưới 3.5.1.34 là bạn phải vá ngay. Với người quản nhiều site, mình hay quét hàng loạt bằng vòng lặp:

for site in /var/www/*/public_html; do
  v=$(sudo -u www-data wp plugin get smart-slider-3 --field=version --path="$site" 2>/dev/null)
  [ -n "$v" ] && echo "$site -> $v"
done

Ngoài ra, một điểm tự kiểm tra quan trọng: site bạn có bật đăng ký user mở không? Lỗi chỉ bị kích hoạt sau khi đăng nhập, nên nếu Settings > General > Membership đang bật “Anyone can register” mà không có lý do chính đáng thì hãy tắt đi. Cách kiểm tra nhanh bằng WP-CLI:

sudo -u www-data wp option get users_can_register --path=/var/www/thienlv.com/public_html
# giá trị 1 nghĩa là đang mở đăng ký

Vá lỗi Smart Slider 3 đúng cách trong bao lâu?

Không quá 2 phút nếu bạn thao tác chuẩn. Nâng cấp trực tiếp bằng WP-CLI, không cần vào dashboard:

sudo -u www-data wp plugin update smart-slider-3 --path=/var/www/thienlv.com/public_html
# xác nhận lại phiên bản sau khi cập nhật
sudo -u www-data wp plugin get smart-slider-3 --field=version --path=/var/www/thienlv.com/public_html

Kết quả phải từ 3.5.1.34 trở lên. Với site chạy production, mình khuyên bạn backup thư mục plugin trước, đề phòng trường hợp custom CSS của slider bị văng do thay đổi cấu trúc:

wp_plugin_dir=$(sudo -u www-data wp plugin get smart-slider-3 --field=plugins_dir 2>/dev/null || echo /var/www/thienlv.com/public_html/wp-content/plugins)
cp -r "$wp_plugin_dir/smart-slider-3" /root/backup-smart-slider-$(date +%F)

Theo dõi rủi ro bị trì hoãn bản vá như cơ chế Protect The Shire đã từng gây ra, bạn nên chủ động cập nhật thủ công thay vì chờ auto-update. Nếu bạn đang dùng Wordfence Premium, Care hoặc Response thì firewall rule đã chặn luồng export độc hại từ 24/2; bản miễn phí được bảo vệ từ 26/3.

Làm sao nhận biết site đã bị khai thác trước khi vá?

Kẻ tấn công đã chạm tới wp-config.php thì bước tiếp theo gần như luôn là kết nối database hoặc tạo admin ảo. Mình rà theo ba hướng. Thứ nhất, liệt kê user có role bất thường hoặc tài khoản mới sinh không rõ nguồn gốc:

sudo -u www-data wp user list --fields=ID,user_login,roles,user_registered,last_activity --path=/var/www/thienlv.com/public_html | sort -k5

Thứ hai, quét admin ảo giấu trong must-use plugin, một thủ thuật mình đã bóc tách chi tiết trong bài malware must-use plugin giấu tài khoản admin ảo:

ls -la /var/www/thienlv.com/public_html/wp-content/mu-plugins/
# bất kỳ file lạ nào ở đây khi bạn không chủ động tạo thì export về xem nội dung

Thứ ba, nếu xác nhận bị mất wp-config.php, hãy coi như toàn bộ hệ thống bị lộ. Đổi mật khẩu database ngay trong hosting panel, regenerate salt mới bằng lệnh wp config shuffle-salts, rồi đổi mật khẩu toàn bộ tài khoản administrator. Đây cũng là runbook tương tự mình từng áp dụng khi xử lý 358 lỗ hổng WordPress trong một tuần, nguyên tắc nào cũng vậy: lộ secrets thì phải rotate hết, vá plugin chỉ là một nửa bài toán.

Bài học nào nên rút ra cho admin WordPress?

Theo quan sát của mình, CVE-2026-3098 không phải lỗi “khủng” về điểm CVSS nhưng lại cực kỳ thực tế vì hai lý do:plugin slider dùng cực phổ biến, và điều kiện khai thác chỉ cần một tài khoản Subscriber. Rất nhiều site bán hàng, tin tức vẫn để mở đăng ký user cho khách đặt bình luận.

Ba việc bạn nên làm ngay hôm nay: một, khóa danh sách plugin đang chạy và phiên bản (lệnh wp plugin list ở trên); hai, rà lại setting users_can_register trên mọi site mình quản; ba, nếu dùng Wordfence thì cân nhắc bản trả phí vì khoảng 30 ngày chênh lệch rule giữa Premium và Free đủ để một cuộc tấn công hoàn tất. Lỗi được Dmitrii Ignatyev phát hiện qua Wordfence Bug Bounty, phần thưởng chỉ 2.208 USD, một con số khá khiêm tốn so với mức độ lộ dữ liệu mà nó ngăn được.

Cuối cùng, cập nhật plugin không bao giờ là thừa. Một plugin đẹp, phổ biến, được chăm sóc tốt như Smart Slider 3 vẫn có thể có lỗi ở một hàm export tưởng như vô hại. Việc của admin là rà định kỳ, vá nhanh và luôn có kịch bản xoay secrets khi sự cố xảy ra.

Thanh Tùng

Mình là Thanh Tùng. Bạn bè gọi mình là "bác sĩ máy tính" vì hễ máy nào có vấn đề là mình muốn mò vào xem sao. Mình viết hướng dẫn theo cách mà mình mong người khác đã viết cho mình ngày xưa — từng bước rõ ràng, không bỏ sót, và nói luôn cái gì hay bị lỗi. Ngoài giờ làm mình chơi guitar, nuôi mèo, và có một con VPS riêng dành riêng cho việc cài thử đủ thứ linh tinh.

Xem tất cả bài viết →

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *