Các lỗ hổng ưu tiên cao đã được vá trong Plugin Uncode Core

quản trị viên

Giới thiệu

Vào ngày 7 tháng 5 năm 2024, WP-Firewall, một tổ chức tư vấn bảo mật hàng đầu, đã công bố một báo cáo chi tiết về các lỗ hổng nghiêm trọng được phát hiện trong plugin Uncode Core. Nếu bạn là người dùng Uncode, điều quan trọng là phải cập nhật plugin cốt lõi của bạn lên ít nhất là phiên bản 2.8.9 để bảo vệ trang web WordPress của bạn khỏi các cuộc tấn công tiềm ẩn. Bài đăng này sẽ đi sâu vào chi tiết về các lỗ hổng này, tác động của chúng và các bước thực hiện để giảm thiểu chúng.

Giới thiệu về Plugin Uncode Core

Plugin Uncode Core, được phát triển bởi Undsgn, là một thành phần thiết yếu của chủ đề Uncode—một chủ đề cao cấp rất phổ biến cho các trang web WooCommerce, với hơn 110.000 lượt bán trên ThemeForest. Chủ đề Uncode nổi tiếng với thiết kế hoàn hảo đến từng pixel, khiến nó trở nên lý tưởng cho nhiều trang web khác nhau, bao gồm danh mục đầu tư, công ty, người làm việc tự do, blog và cửa hàng trực tuyến.

Các lỗ hổng bảo mật

Các nhà nghiên cứu bảo mật của WP-Firewall đã xác định được hai lỗ hổng quan trọng trong plugin Uncode Core:

1. Xóa tệp và thư mục tùy ý đã xác thực

Sự miêu tả: Lỗ hổng này cho phép bất kỳ người dùng đã xác thực nào có ít nhất vai trò là Subscriber xóa các thư mục tùy ý trên máy chủ. Vấn đề nằm ở hàm `delete_download`, hàm này thiếu quyền và kiểm tra nonce phù hợp. Hàm này được đính kèm vào hành động `wp_ajax_uncodefont_delete_download`, khiến người dùng đã xác thực có thể khai thác nó.

Chi tiết kỹ thuật:

hàm delete_download() {
nếu (isset($_REQUEST['font_family'])) {
$font_family = $_REQUEST['font_family'];
$font_dir = trailingslashit($this->font_directory).$font_family;
$fontkit_zip = $font_dir.'.zip';

nếu (@file_exists($fontkit_zip)) {
nếu (!@unlink($fontkit_zip)) {
echo json_encode(mảng(
'lỗi' => sprintf( esc_html__( 'Không xóa được @fontface kit zip %1$s.', 'uncode-core' ), $fontkit_zip )
));
chết();
}
}

// Không thể xóa thư mục, vì unzip_file, thư mục đã tạo ra nó, sử dụng WP_Filesystem. Vì vậy, chúng tôi sử dụng WP_Filesystem để xóa nó.
$this->setup_wp_filesystem();

hệ thống tập tin toàn cầu $wp;
nếu (isset($wp_filesystem)) {
$delete_dir = $wp_filesystem->delete($font_dir, đúng);
nếu (!$delete_dir) {
echo json_encode(mảng('lỗi' => $delete_dir['lỗi']));
chết();
}
}

echo json_encode(array('success' => "Tải xuống đã xóa"));
}
chết();
}
bao gồm/font-system/font-system.php, hàm delete_download()

Hàm này xây dựng biến `$font_dir` từ dữ liệu đầu vào của người dùng (`$_REQUEST['font_family']`) mà không cần khử trùng, cho phép duyệt thư mục và xóa tùy ý.

2. Tăng quyền xác thực

Sự miêu tả: Lỗ hổng này cho phép bất kỳ người dùng đã xác thực nào có vai trò tối thiểu là Subscriber có thể nâng cao đặc quyền của họ lên bất kỳ vai trò nào trên trang WordPress. Điều này là do bản cập nhật WP Option không an toàn trong hàm `save_option`, thiếu kiểm tra quyền thích hợp.

Chi tiết kỹ thuật:

hàm công khai save_option() {
nếu ( isset( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'uncode-core-settings-nonce' ) ) {
nếu ( isset( $_POST['giá trị'] ) && $_POST['giá trị'] && isset( $_POST['option_id'] ) && $_POST['option_id'] ) {
$autoload = isset( $_POST['autoload'] ) && $_POST['autoload'] === 'đúng' ? đúng : sai;
cập nhật_tùy_chọn( $_POST['option_id'], $_POST['giá_trị'], $autoload );
---------- CẮT Ở ĐÂY ----------
bao gồm/core-settings/class-core-settings.php, hàm save_option()

Mã nonce được sử dụng trong chức năng này có thể được lấy lại bởi bất kỳ người dùng đã xác thực nào có quyền truy cập vào khu vực wp-admin, cho phép cập nhật trái phép vào các tùy chọn và leo thang đặc quyền.

Miếng vá

Để giải quyết những lỗ hổng này, các nhà phát triển plugin Uncode Core đã phát hành phiên bản 2.8.9, bao gồm các bản sửa lỗi sau:

Xóa tệp và thư mục tùy ý đã xác thực: Đã triển khai kiểm tra quyền và nonce trong hàm `delete_download`.

Tăng quyền xác thực: Áp dụng quyền và kiểm tra nonce trong hàm `save_option` và thêm kiểm tra danh sách trắng cho các khóa tùy chọn.

Phần kết luận

Đảm bảo tính bảo mật cho trang web WordPress của bạn bao gồm việc cập nhật các bản vá lỗi và khuyến cáo bảo mật mới nhất. Các lỗ hổng trong plugin Uncode Core nhấn mạnh tầm quan trọng của việc triển khai quyền và kiểm tra nonce phù hợp cho bất kỳ hành động nhạy cảm nào. Luôn khử trùng dữ liệu đầu vào của người dùng và giới hạn phạm vi những gì có thể được cập nhật hoặc xóa thông qua hành động của người dùng.

Để biết thông tin chi tiết hơn, bạn có thể đọc toàn bộ khuyến cáo bảo mật trên trang web của WP-Firewall đây.

Giữ an toàn

WP-Firewall cung cấp nhiều giải pháp bảo mật WordPress, bao gồm kiểm tra plugin, giám sát và phản hồi lỗ hổng, và dịch vụ bảo mật WordPress được quản lý. Nếu bạn là nhà phát triển plugin hoặc nhà nghiên cứu bảo mật, hãy cân nhắc tham gia WP-Firewall.


wordpress security update banner

Nhận WP Security Weekly miễn phí 👋
Đăng ký ngay
!!

Đăng ký để nhận Bản cập nhật bảo mật WordPress trong hộp thư đến của bạn hàng tuần.

Chúng tôi không spam! Đọc của chúng tôi chính sách bảo mật để biết thêm thông tin.