WP Bulk Delete Security & Risk Analysis

wordpress.org/plugins/wp-bulk-delete

Delete posts, pages, comments, users, taxonomy terms and meta fields in bulk with different powerful filters and conditions.

100K active installs v1.3.9 PHP 5.3+ WP 4.9+ Updated Mar 6, 2026
bulkbulk-cleanbulk-deleteclean-databasedelete
98
A · Safe
CVEs total2
Unpatched0
Last CVEAug 27, 2025
Safety Verdict

Is WP Bulk Delete Safe to Use in 2026?

Generally Safe

Score 98/100

WP Bulk Delete has a strong security track record. Known vulnerabilities have been patched promptly. It's a solid choice for most WordPress installations.

2 known CVEsLast CVE: Aug 27, 2025Updated 2mo ago
Risk Assessment

The "wp-bulk-delete" plugin v1.3.9 exhibits a generally good security posture with several positive indicators. The absence of unprotected AJAX handlers, REST API routes, and shortcodes significantly limits its immediate attack surface. The high percentage of SQL queries utilizing prepared statements (89%) and proper output escaping (84%) are strong defenses against common vulnerabilities like SQL injection and Cross-Site Scripting. The presence of nonce and capability checks also indicates an effort to secure various functionalities.

However, the static analysis reveals some areas for concern. Two taint flows with unsanitized paths were detected, though they were not classified as critical or high severity. The fact that these flows exist, even without immediate exploitation potential based on the analysis, suggests a potential for future vulnerabilities if the input handling is not thoroughly reviewed and sanitized. Furthermore, the plugin's vulnerability history, with two medium-severity CVEs in the past, both related to missing authorization and XSS, warrants attention. While there are currently no unpatched vulnerabilities, this pattern suggests that improper input validation and authorization checks have been a recurring issue.

In conclusion, while "wp-bulk-delete" v1.3.9 has implemented several security best practices, the presence of unsanitized taint flows and its past vulnerability history are weaknesses that cannot be ignored. The plugin should be kept updated, and a thorough code audit focusing on input validation and authorization for all entry points, especially those associated with the identified taint flows, is recommended to mitigate potential risks.

Key Concerns

  • Taint flows with unsanitized paths detected
  • Previous medium severity vulnerabilities (2 total)
Vulnerabilities
2 published

WP Bulk Delete Security Vulnerabilities

CVEs by Year

1 CVE in 2024
2024
1 CVE in 2025
2025
Patched Has unpatched

Severity Breakdown

Medium
2

2 total CVEs

CVE-2025-58192medium · 4.3Missing Authorization

WP Bulk Delete <= 1.3.6 - Missing Authorization

Aug 27, 2025 Patched in 1.3.7 (8d)
CVE-2024-47352medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

WP Bulk Delete <= 1.3.1 - Reflected Cross-Site Scripting

Sep 30, 2024 Patched in 1.3.2 (11d)
Version History

WP Bulk Delete Release Timeline

Code Analysis
Analyzed Mar 17, 2026

WP Bulk Delete Code Analysis

Dangerous Functions
0
Raw SQL Queries
8
62 prepared
Unescaped Output
45
236 escaped
Nonce Checks
11
Capability Checks
13
File Operations
0
External Requests
2
Bundled Libraries
1

Bundled Libraries

jQuery

SQL Query Safety

89% prepared70 total queries

Output Escaping

84% escaped281 total outputs
Data Flows · Security
2 unsanitized

Data Flow Analysis

2 flows2 with unsanitized paths
wpbd_delete_posts_page (includes\admin\posts\display-delete-posts.php:23)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

WP Bulk Delete Attack Surface

Entry Points8
Unprotected0

AJAX Handlers 8

authwp_ajax_delete_posts_countincludes\ajax-functions.php:67
authwp_ajax_render_taxonomy_by_posttypeincludes\ajax-functions.php:102
authwp_ajax_render_terms_by_taxonomyincludes\ajax-functions.php:142
authwp_ajax_delete_users_countincludes\ajax-functions.php:196
authwp_ajax_delete_comments_countincludes\ajax-functions.php:253
authwp_ajax_delete_meta_countincludes\ajax-functions.php:332
authwp_ajax_delete_terms_countincludes\ajax-functions.php:398
authwp_ajax_render_postdropdown_by_posttypeincludes\ajax-functions.php:438
WordPress Hooks 38
actionadmin_menuincludes\admin\admin-pages.php:45
filtersubmenu_fileincludes\admin\admin-pages.php:67
actionwpbd_add_addon_menuincludes\admin\admin-pages.php:85
actionadmin_footerincludes\class-wpbd-plugin-deactivation.php:41
actionwpbd_display_available_in_proincludes\common-functions.php:106
actiontimeout_memory_is_enoughincludes\common-functions.php:134
actionadmin_post_wpbd_delete_postincludes\common-functions.php:137
actiondelete_pctu_noticeincludes\common-functions.php:336
actionwpbd_delete_comments_formincludes\delele-comments-form-functions.php:15
actionwpbd_delete_comments_formincludes\delele-comments-form-functions.php:16
actionwpbd_delete_comments_formincludes\delele-comments-form-functions.php:17
actionwpbd_delete_comments_formincludes\delele-comments-form-functions.php:18
actionwpbd_delete_comments_formincludes\delele-comments-form-functions.php:19
actionwpbd_delete_comments_formincludes\delele-comments-form-functions.php:20
actionwpbd_delete_comments_formincludes\delele-comments-form-functions.php:21
actionwpbd_delete_comments_formincludes\delele-comments-form-functions.php:22
actionrender_form_by_posttypeincludes\delele-posts-form-functions.php:16
actionrender_form_by_authorincludes\delele-posts-form-functions.php:19
actionrender_form_by_titleincludes\delele-posts-form-functions.php:22
actionrender_form_by_taxonomyincludes\delele-posts-form-functions.php:25
actionrender_form_by_custom_fieldsincludes\delele-posts-form-functions.php:28
actionrender_form_generalincludes\delele-posts-form-functions.php:31
actionrender_form_by_charector_countincludes\delele-posts-form-functions.php:32
actionrender_form_by_charector_countincludes\delele-posts-form-functions.php:33
actionrender_form_by_charector_countincludes\delele-posts-form-functions.php:34
actionwpbd_delete_terms_formincludes\delele-terms-form-functions.php:15
actionwpbd_delete_terms_formincludes\delele-terms-form-functions.php:16
actionwpbd_delete_users_formincludes\delele-users-form-functions.php:15
actionwpbd_delete_users_advance_formincludes\delele-users-form-functions.php:16
actionwpbd_delete_users_advance_formincludes\delele-users-form-functions.php:17
actionwpbd_delete_users_advance_formincludes\delele-users-form-functions.php:18
actionwpbd_delete_users_advance_formincludes\delele-users-form-functions.php:19
actionwpbd_delete_users_advance_formincludes\delele-users-form-functions.php:20
actionwpbd_delete_users_advance_formincludes\delele-users-form-functions.php:21
actionwpbd_delete_users_date_formincludes\delele-users-form-functions.php:22
actionwpbd_delete_users_action_limit_formincludes\delele-users-form-functions.php:23
actionadmin_enqueue_scriptsincludes\scripts.php:58
actionadmin_enqueue_scriptsincludes\scripts.php:59

Scheduled Events 2

wpbd_run_scheduled_delete
wpbd_run_scheduled_delete
Maintenance & Trust

WP Bulk Delete Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedMar 6, 2026
PHP min version5.3
Downloads1.3M

Community Trust

Rating92/100
Number of ratings122
Active installs100K
Developer Profile

WP Bulk Delete Developer Profile

Xylus Themes

13 plugins · 110K total installs

76
trust score
Avg Security Score
95/100
Avg Patch Time
105 days
View full developer profile
Detection Fingerprints

How We Detect WP Bulk Delete

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/wp-bulk-delete/assets/css/main.css/wp-content/plugins/wp-bulk-delete/assets/css/select2.min.css/wp-content/plugins/wp-bulk-delete/assets/js/main.js/wp-content/plugins/wp-bulk-delete/assets/js/select2.min.js/wp-content/plugins/wp-bulk-delete/assets/js/clipboard.min.js
Script Paths
/wp-content/plugins/wp-bulk-delete/assets/js/main.js/wp-content/plugins/wp-bulk-delete/assets/js/select2.min.js/wp-content/plugins/wp-bulk-delete/assets/js/clipboard.min.js
Version Parameters
wp-bulk-delete/assets/css/main.css?ver=wp-bulk-delete/assets/css/select2.min.css?ver=wp-bulk-delete/assets/js/main.js?ver=wp-bulk-delete/assets/js/select2.min.js?ver=wp-bulk-delete/assets/js/clipboard.min.js?ver=

HTML / DOM Fingerprints

CSS Classes
wpbd-bulk-delete-formwpbd-delete-posts-formwpbd-delete-users-formwpbd-delete-comments-formwpbd-delete-meta-formwpbd-delete-terms-formwpbd-cleanup-formwpbd-support-page-form
HTML Comments
<!-- Main WP Bulk Delete class --><!-- Singleton --><!-- Main WP Bulk Delete Instance. --><!-- A dummy constructor to prevent WP_Bulk_Delete from being loaded more than once. -->+13 more
Data Attributes
data-bulk-delete-noncedata-bulk-delete-type
JS Globals
WPBD_AJAX_URLWPBD_DELETE_API_NONCEWPBD_AJAX_NONCE
FAQ

Frequently Asked Questions about WP Bulk Delete