GDPR Security & Risk Analysis

wordpress.org/plugins/gdpr

This plugin is meant to assist with the GDPR obligations of a Data processor and Controller.

10K active installs v2.1.2 PHP 5.6+ WP 4.7+ Updated Feb 24, 2026
compliancegdprgeneral-data-protection-regulationlawprivacy
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is GDPR Safe to Use in 2026?

Generally Safe

Score 100/100

GDPR has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 1mo ago
Risk Assessment

The GDPR plugin v2.1.2 presents a mixed security posture. On the positive side, it demonstrates excellent practices regarding SQL query handling, exclusively using prepared statements, and a high percentage of properly escaped output, which mitigates common injection and XSS vulnerabilities. The lack of recorded vulnerabilities in its history is also a strong indicator of past security diligence. However, a significant concern arises from the attack surface analysis. With 15 AJAX handlers, a substantial 14 lack authentication checks. This means that potentially any unauthenticated user could trigger these AJAX actions, creating a broad entry point for attackers. Furthermore, the taint analysis revealed two flows with unsanitized paths, which, while not classified as critical or high severity, warrants careful investigation as they could potentially lead to unintended file operations or information disclosure if exploited in conjunction with other weaknesses. The plugin's 15 nonce checks are a good practice for AJAX, but their effectiveness is severely undermined by the absence of authentication checks on most of them. The plugin's file operation count and external HTTP requests are relatively low and don't immediately raise alarms without further context, but the lack of capability checks for AJAX handlers is a critical oversight.

In conclusion, while the plugin excels in database security and output sanitization, its extensive unprotected AJAX endpoints represent a substantial risk. The presence of unsanitized paths in the taint analysis, though not severe, adds to this concern. The absence of capability checks on AJAX handlers is a glaring weakness that attackers could leverage to bypass intended functionality. The plugin's history of zero vulnerabilities is commendable, but it does not negate the current risks identified in the static and taint analysis. Addressing the unprotected AJAX handlers and investigating the taint flows should be a priority to improve its overall security.

Key Concerns

  • AJAX handlers without authentication checks
  • Flows with unsanitized paths
  • AJAX handlers without capability checks
Vulnerabilities
None known

GDPR Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 16, 2026

GDPR Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
37
476 escaped
Nonce Checks
15
Capability Checks
0
File Operations
3
External Requests
1
Bundled Libraries
0

Output Escaping

93% escaped513 total outputs
Data Flows
2 unsanitized

Data Flow Analysis

5 flows2 with unsanitized paths
request_confirmed (public\class-gdpr-requests-public.php:258)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
14 unprotected

GDPR Attack Surface

Entry Points17
Unprotected14

AJAX Handlers 15

authwp_ajax_gdpr_generate_data_exportincludes\class-gdpr.php:158
authwp_ajax_ignore_policy_updateincludes\class-gdpr.php:198
authwp_ajax_seek_consentincludes\class-gdpr.php:199
authwp_ajax_gdpr_access_dataincludes\class-gdpr.php:208
authwp_ajax_gdpr_audit_logincludes\class-gdpr.php:209
authwp_ajax_gdpr_anonymize_commentsincludes\class-gdpr.php:217
authwp_ajax_gdpr_reassign_contentincludes\class-gdpr.php:218
authwp_ajax_disagree_with_termsincludes\class-gdpr.php:262
authwp_ajax_agree_with_termsincludes\class-gdpr.php:263
authwp_ajax_gdpr_update_privacy_preferencesincludes\class-gdpr.php:264
noprivwp_ajax_gdpr_update_privacy_preferencesincludes\class-gdpr.php:265
authwp_ajax_agree_with_new_policiesincludes\class-gdpr.php:266
noprivwp_ajax_agree_with_new_policiesincludes\class-gdpr.php:267
authwp_ajax_gdpr_send_request_emailincludes\class-gdpr.php:270
noprivwp_ajax_gdpr_send_request_emailincludes\class-gdpr.php:271

Shortcodes 2

[gdpr_preferences] includes\helper-functions.php:37
[gdpr_request_form] includes\helper-functions.php:67
WordPress Hooks 42
filternonce_user_logged_outincludes\class-gdpr.php:178
actionplugins_loadedincludes\class-gdpr.php:179
actionbp_account_details_fieldsincludes\class-gdpr.php:180
actionwoocommerce_register_formincludes\class-gdpr.php:182
actionwoocommerce_checkout_update_user_metaincludes\class-gdpr.php:185
filterwoocommerce_checkout_fieldsincludes\class-gdpr.php:186
filtermanage_users_custom_columnincludes\class-gdpr.php:188
filtermanage_users_columnsincludes\class-gdpr.php:189
filtermanage_users_sortable_columnsincludes\class-gdpr.php:190
actionpre_get_usersincludes\class-gdpr.php:191
actionshow_user_profileincludes\class-gdpr.php:192
actionpersonal_options_updateincludes\class-gdpr.php:193
actionadmin_noticesincludes\class-gdpr.php:194
actionadmin_noticesincludes\class-gdpr.php:195
actionadmin_noticesincludes\class-gdpr.php:196
actionupgrader_process_completeincludes\class-gdpr.php:197
actionpublish_pageincludes\class-gdpr.php:200
actionadmin_enqueue_scriptsincludes\class-gdpr.php:201
actionadmin_enqueue_scriptsincludes\class-gdpr.php:202
actionadmin_menuincludes\class-gdpr.php:203
actionadmin_initincludes\class-gdpr.php:204
actionregister_formincludes\class-gdpr.php:205
actionregistration_errorsincludes\class-gdpr.php:206
actionuser_registerincludes\class-gdpr.php:207
actionadmin_post_gdpr_data_breachincludes\class-gdpr.php:210
actionclean_gdpr_data_breach_requestincludes\class-gdpr.php:211
actionadmin_post_gdpr_delete_userincludes\class-gdpr.php:213
actionadmin_post_gdpr_cancel_requestincludes\class-gdpr.php:214
actionadmin_post_gdpr_add_to_deletion_requestsincludes\class-gdpr.php:215
actionadmin_post_gdpr_mark_resolvedincludes\class-gdpr.php:216
actionclean_gdpr_requestsincludes\class-gdpr.php:221
actionclean_gdpr_user_request_keyincludes\class-gdpr.php:222
actionsend_data_breach_emailsincludes\class-gdpr.php:224
actionwp_enqueue_scriptsincludes\class-gdpr.php:254
actionwp_enqueue_scriptsincludes\class-gdpr.php:255
actioninitincludes\class-gdpr.php:256
actionwp_footerincludes\class-gdpr.php:257
actionwp_footerincludes\class-gdpr.php:258
actionwp_footerincludes\class-gdpr.php:259
actionwp_footerincludes\class-gdpr.php:260
actionwp_footerincludes\class-gdpr.php:261
actionwpincludes\class-gdpr.php:269

Scheduled Events 3

clean_gdpr_data_breach_request
send_data_breach_emails
clean_gdpr_user_request_key
Maintenance & Trust

GDPR Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 24, 2026
PHP min version5.6
Downloads372K

Community Trust

Rating86/100
Number of ratings58
Active installs10K
Developer Profile

GDPR Developer Profile

Trew Knowledge

1 plugin · 10K total installs

94
trust score
Avg Security Score
100/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect GDPR

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/gdpr/admin/css/admin.css
Script Paths
/wp-content/plugins/gdpr/dist/js/admin.js
Version Parameters
gdpr/dist/css/admin.css?ver=gdpr/dist/js/admin.js?ver=

HTML / DOM Fingerprints

CSS Classes
awaiting-mod
FAQ

Frequently Asked Questions about GDPR