Phát hiện lỗ hổng plugin Advanced Custom Fields (ACF) WordPress: Cảnh báo về sự cố tiềm ẩn

Phát hiện lỗ hổng plugin Advanced Custom Fields (ACF) WordPress: Cảnh báo về sự cố tiềm ẩn

Một thông báo mới từ Advanced Custom Fields (ACF) WordPress plugin với hơn 2 triệu lượt cài đặt đã công bố việc phát hành bản cập nhật bảo mật, phiên bản 6.2.5, nhằm khắc phục một lỗ hổng an ninh với mức độ nghiêm trọng chưa được biết đến. Tuy nhiên, lưu ý rằng bản cập nhật này có khả năng gây ra sự cố cho các trang web, đồng thời cung cấp hướng dẫn về cách gỡ lỗi những thay đổi.

Lỗ hổng được phát hiện

Bản cập nhật bảo mật ACF 6.2.5 nhắc nhở về sự thay đổi quan trọng trong cách xử lý việc nhúng và đầu ra HTML không an toàn bằng ACF shortcode. Điều này có thể gây ra sự cố cho các trang web sử dụng shortcode để hiển thị các phần tử HTML phức tạp như scripts hoặc iframes.

Sự độc đáo và phức tạp của bản cập nhật

Bản cập nhật bảo mật này đặc biệt bởi vì thông thường, các nhà nghiên cứu bảo mật sẽ báo cho nhà xuất bản plugin WordPress về lỗ hổng và nhà xuất bản sẽ thực hiện cập nhật một cách yên lặng để khắc phục vấn đề. Tuy nhiên, trường hợp này lại phức tạp hơn vì khả năng gây ra sự cố cho trang web. Do đó, ACF đã quyết định thông báo về bản cập nhật bảo mật và cảnh báo người dùng về các vấn đề tiềm ẩn gây ra bởi bản cập nhật này.

Lịch trình cập nhật bảo mật

Vì tính phức tạp của việc khắc phục lỗ hổng này, ACF quyết định phát hành một bản cập nhật bảo mật thứ hai vào tháng 2 năm 2024, phiên bản 6.2.7. Điều này sẽ cung cấp thêm thời gian cho người dùng plugin chuẩn bị và giảm thiểu khả năng gây ra sự cố do các thay đổi tiềm ẩn.

Mô tả về lỗ hổng

Lỗi bảo mật này cho phép người dùng với vai trò contributor, thường bị hạn chế khỏi việc đăng HTML chưa qua lọc, để chèn mã độc hại. Vấn đề này bypass các giao thức vệ sinh tiêu chuẩn của ACF, tạo ra một nguy cơ an ninh tiềm ẩn.

Hướng dẫn cho các nhà phát triển

Nhà phát triển được khuyến cáo cẩn trọng khi xử lý đầu ra HTML. Trong những trường hợp cần thiết, như hiển thị HTML chưa qua lọc, như các thẻ script, việc sử dụng 'echo get_field()' được đề xuất. Đối với các trường hợp khác, việc áp dụng các hàm thoát phù hợp, như 'wp_kses_post', được khuyến nghị.