Post Affiliate Pro Security & Risk Analysis

wordpress.org/plugins/postaffiliatepro

This plugin integrates Post Affiliate Pro software into any WordPress installation. Post Affiliate Pro is the leading affiliate tracking tool with mor …

600 active installs v1.29.1 PHP + WP 3.0.0+ Updated Apr 9, 2026
affiliate-marketingconversion-trackingconversionspappost-affiliate-pro
77
B · Generally Safe
CVEs total2
Unpatched1
Last CVEMar 20, 2026
Safety Verdict

Is Post Affiliate Pro Safe to Use in 2026?

Mostly Safe

Score 77/100

Post Affiliate Pro is generally safe to use. 2 past CVEs were resolved.

2 known CVEs 1 unpatched Last CVE: Mar 20, 2026Updated 1mo ago
Risk Assessment

This plugin exhibits a mixed security posture. While it demonstrates good practices like using prepared statements for all SQL queries and having a moderate number of entry points, several concerning signals warrant attention. The presence of `unserialize` without apparent sanitization, combined with a significant percentage of improperly escaped output (77%), suggests potential for code injection and cross-site scripting vulnerabilities. Furthermore, the taint analysis indicates flows with unsanitized paths, although they are not currently classified as critical or high severity, this is still a point of concern. The plugin's vulnerability history reveals a pattern of past SSRF and XSS issues, with one medium and one low severity vulnerability, one of which remains unpatched. The recent vulnerability date (2026-03-20) is highly unusual and likely a data error, but the overall history suggests a recurring need for security vigilance. The unprotected AJAX handler is a direct and immediate risk.

Key Concerns

  • Unpatched CVE exists
  • Dangerous function unserialize used
  • AJAX handler without auth checks
  • High percentage of unescaped output
  • Flows with unsanitized paths identified
  • Low number of nonce checks relative to entry points
Vulnerabilities
2 published

Post Affiliate Pro Security Vulnerabilities

CVEs by Year

1 CVE in 2023
2023
1 CVE in 2026 · unpatched
2026
Patched Has unpatched

Severity Breakdown

Medium
1
Low
1

2 total CVEs

CVE-2026-2290low · 3.8Server-Side Request Forgery (SSRF)

Post Affiliate Pro <= 1.28.0 - Authenticated (Administrator+) Server-Side Request Forgery via 'Post Affiliate Pro URL' Field

Mar 20, 2026Unpatched
CVE-2023-38482medium · 4.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Post Affiliate Pro <= 1.24.9 - Authenticated (Administrator+) Stored Cross-Site Scripting

Jul 20, 2023 Patched in 1.25.0 (187d)
Version History

Post Affiliate Pro Release Timeline

v1.29.1Current1 CVE
v1.29.01 CVE
v1.28.31 CVE
v1.28.21 CVE
v1.28.11 CVE
v1.28.01 CVE
v1.27.151 CVE
v1.27.141 CVE
v1.27.131 CVE
v1.27.121 CVE
v1.27.111 CVE
v1.27.101 CVE
v1.27.91 CVE
v1.27.81 CVE
v1.27.71 CVE
v1.27.61 CVE
v1.27.51 CVE
v1.27.31 CVE
v1.27.21 CVE
v1.27.11 CVE
Code Analysis
Analyzed Apr 16, 2026

Post Affiliate Pro Code Analysis

Dangerous Functions
2
Raw SQL Queries
0
6 prepared
Unescaped Output
44
13 escaped
Nonce Checks
1
Capability Checks
2
File Operations
10
External Requests
3
Bundled Libraries
0

Dangerous Functions Found

unserializereturn unserialize(get_option(Shortcode_Affiliate::AFFILAITE_SHORTCODE_CACHE));Shortcode/Cache.class.php:14
unserializereturn unserialize(get_option(self::TOP_AFFILAITES_CACHE));Widget/TopAffiliates.class.php:37

SQL Query Safety

100% prepared6 total queries

Output Escaping

23% escaped57 total outputs
Data Flows · Security
3 unsanitized

Data Flow Analysis

4 flows3 with unsanitized paths
wooHandleCustomThankYouPages (Form/Settings/WooComm.class.php:131)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
1 unprotected

Post Affiliate Pro Attack Surface

Entry Points4
Unprotected1

AJAX Handlers 2

authwp_ajax_pap_recompute_ajaxForm/Settings/WooComm.class.php:1215
authwp_ajax_pap_login_redirect_ajaxShortcode/Affiliate.class.php:289

Shortcodes 2

[affiliate] Shortcode/Affiliate.class.php:286
[parent] Shortcode/Affiliate.class.php:287
WordPress Hooks 113
actionadmin_initForm/Settings/ContactForm7.class.php:227
actionadmin_menuForm/Settings/ContactForm7.class.php:228
actionwpcf7_mail_sentForm/Settings/ContactForm7.class.php:230
filterwpcf7_posted_dataForm/Settings/ContactForm7.class.php:231
actionadmin_initForm/Settings/Debugging.class.php:75
actionadmin_menuForm/Settings/Debugging.class.php:79
actionadmin_initForm/Settings/EDD.class.php:264
actionadmin_menuForm/Settings/EDD.class.php:268
actionedd_payment_receipt_after_tableForm/Settings/EDD.class.php:272
actionedd_recurring_add_subscription_paymentForm/Settings/EDD.class.php:276
actionadmin_initForm/Settings/LifterLMS.class.php:174
actionadmin_menuForm/Settings/LifterLMS.class.php:178
actionlifterlms_after_checkout_formForm/Settings/LifterLMS.class.php:183
actionlifterlms_order_status_activeForm/Settings/LifterLMS.class.php:187
actionllms_charge_recurring_paymentForm/Settings/LifterLMS.class.php:191
actionadmin_initForm/Settings/Marketpress.class.php:151
actionadmin_menuForm/Settings/Marketpress.class.php:152
filtermp_order/confirmation_textForm/Settings/Marketpress.class.php:154
actionmp_order_order_paidForm/Settings/Marketpress.class.php:155
actionmp_order_order_closedForm/Settings/Marketpress.class.php:156
actionmp_order_trashForm/Settings/Marketpress.class.php:157
actionadmin_initForm/Settings/MemberPress.class.php:208
actionadmin_menuForm/Settings/MemberPress.class.php:209
actionmepr-signupForm/Settings/MemberPress.class.php:211
actionmepr-checkout-before-submitForm/Settings/MemberPress.class.php:212
actionmepr-event-recurring-transaction-completedForm/Settings/MemberPress.class.php:213
actionadmin_initForm/Settings/Membership2.class.php:210
actionadmin_menuForm/Settings/Membership2.class.php:211
actionms_gateway_paypalstandard_payment_processed_Form/Settings/Membership2.class.php:213
actionms_gateway_paypalstandard_payment_processed_paidForm/Settings/Membership2.class.php:214
actionms_gateway_paypalstandard_payment_processed_deniedForm/Settings/Membership2.class.php:215
filterms_controller_gateway_purchase_button_paypalstandardForm/Settings/Membership2.class.php:216
filterms_controller_gateway_purchase_button_stripeplanForm/Settings/Membership2.class.php:217
filterms_gateway_stripe_find_customerForm/Settings/Membership2.class.php:218
filterms_gateway_stripe_process_purchaseForm/Settings/Membership2.class.php:219
actionadmin_initForm/Settings/PMPro.class.php:107
actionadmin_menuForm/Settings/PMPro.class.php:111
actionpmpro_added_orderForm/Settings/PMPro.class.php:115
actionpmpro_after_checkoutForm/Settings/PMPro.class.php:119
actionpmpro_add_orderForm/Settings/PMPro.class.php:123
actionadmin_initForm/Settings/PPBuyNowButton.class.php:66
actionadmin_menuForm/Settings/PPBuyNowButton.class.php:70
filterdo_shortcode_tagForm/Settings/PPBuyNowButton.class.php:74
actionadmin_initForm/Settings/RestrictContentPro.class.php:157
actionadmin_menuForm/Settings/RestrictContentPro.class.php:158
actionrcp_create_paymentForm/Settings/RestrictContentPro.class.php:160
actionrcp_form_processingForm/Settings/RestrictContentPro.class.php:161
actionrcp_update_payment_statusForm/Settings/RestrictContentPro.class.php:162
actionrcp_before_register_form_fieldsForm/Settings/RestrictContentPro.class.php:163
actionadmin_initForm/Settings/S2Member.class.php:107
actionadmin_menuForm/Settings/S2Member.class.php:108
filterws_plugin__s2member_sc_paypal_buttonForm/Settings/S2Member.class.php:110
actionws_plugin__s2member_before_paypal_notifyForm/Settings/S2Member.class.php:111
actionadmin_initForm/Settings/SimplePayPro.class.php:184
actionadmin_menuForm/Settings/SimplePayPro.class.php:188
filtersimpay_payment_receipt_viewedForm/Settings/SimplePayPro.class.php:192
actionsimpay_form_before_form_bottomForm/Settings/SimplePayPro.class.php:196
filtersimpay_create_customer_argsForm/Settings/SimplePayPro.class.php:200
actionadmin_initForm/Settings/StripePayments.class.php:118
actionadmin_menuForm/Settings/StripePayments.class.php:122
filterasp_customer_data_before_createForm/Settings/StripePayments.class.php:129
filterasp_button_output_before_custom_fieldForm/Settings/StripePayments.class.php:133
filterasp-button-output-data-readyForm/Settings/StripePayments.class.php:137
filterwp_footerForm/Settings/StripePayments.class.php:141
actionadmin_initForm/Settings/SureCart.class.php:233
actionadmin_menuForm/Settings/SureCart.class.php:237
actionwp_headForm/Settings/SureCart.class.php:242
filtersurecart/shortcode/renderForm/Settings/SureCart.class.php:247
actionwp_footerForm/Settings/SureCart.class.php:252
actionsurecart/purchase_createdForm/Settings/SureCart.class.php:257
actionsurecart/subscription_renewedForm/Settings/SureCart.class.php:261
actionadmin_initForm/Settings/WPEasyCart.class.php:110
actionadmin_menuForm/Settings/WPEasyCart.class.php:114
actionwpeasycart_success_page_content_topForm/Settings/WPEasyCart.class.php:119
actionwpeasycart_order_paidForm/Settings/WPEasyCart.class.php:125
actionwpeasycart_full_order_refundForm/Settings/WPEasyCart.class.php:130
actionadmin_initForm/Settings/WPPayForms.class.php:88
actionadmin_menuForm/Settings/WPPayForms.class.php:92
actionwppayform/form_render_before_submit_buttonForm/Settings/WPPayForms.class.php:97
actionwppayform/form_payment_successForm/Settings/WPPayForms.class.php:101
actionadmin_initForm/Settings/WishListMember.class.php:112
actionadmin_menuForm/Settings/WishListMember.class.php:113
filterwishlistmember_after_registration_pageForm/Settings/WishListMember.class.php:115
actionwlm_shoppingcart_rebillForm/Settings/WishListMember.class.php:116
actionadmin_initForm/Settings/WooComm.class.php:1156
actionadmin_menuForm/Settings/WooComm.class.php:1160
filterwp_footerForm/Settings/WooComm.class.php:1164
actionwoocommerce_thankyouForm/Settings/WooComm.class.php:1168
actionwoocommerce_checkout_before_order_reviewForm/Settings/WooComm.class.php:1172
actionwoocommerce_order_status_changedForm/Settings/WooComm.class.php:1176
actionwoocommerce_subscription_status_changedForm/Settings/WooComm.class.php:1180
filterwcs_renewal_order_createdForm/Settings/WooComm.class.php:1184
filterwc_autoship_payment_completeForm/Settings/WooComm.class.php:1188
actionadd_meta_boxesForm/Settings/WooComm.class.php:1192
actionwoocommerce_checkout_order_processedForm/Settings/WooComm.class.php:1196
filterwoocommerce_paypal_argsForm/Settings/WooComm.class.php:1201
actionvalid-paypal-standard-ipn-requestForm/Settings/WooComm.class.php:1205
filterrevcent_payload_request_argsForm/Settings/WooComm.class.php:1210
actionadmin_initShortcode/Affiliate.class.php:285
actionadmin_initUtil/UpdateDB.class.php:35
actionadmin_initWidget/TopAffiliates.class.php:187
actionwidgets_initWidget/TopAffiliates.class.php:188
actionadmin_initpostaffiliatepro.php:115
filteradmin_headpostaffiliatepro.php:116
actionadmin_menupostaffiliatepro.php:117
actionuser_registerpostaffiliatepro.php:119
actionmgm_user_registerpostaffiliatepro.php:120
actionwoocommerce_created_customerpostaffiliatepro.php:121
actionregister_formpostaffiliatepro.php:122
actionprofile_updatepostaffiliatepro.php:123
filterwp_footerpostaffiliatepro.php:124
actionupgrader_process_completepostaffiliatepro.php:125
actionadmin_noticespostaffiliatepro.php:581
Maintenance & Trust

Post Affiliate Pro Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedApr 9, 2026
PHP min version
Downloads90K

Community Trust

Rating92/100
Number of ratings23
Active installs600
Developer Profile

Post Affiliate Pro Developer Profile

qusupport

2 plugins · 1K total installs

71
trust score
Avg Security Score
88/100
Avg Patch Time
101 days
View full developer profile
Detection Fingerprints

How We Detect Post Affiliate Pro

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/postaffiliatepro/css/style.css/wp-content/plugins/postaffiliatepro/css/admin-styles.css/wp-content/plugins/postaffiliatepro/css/widget.css/wp-content/plugins/postaffiliatepro/js/postaffiliatepro.js/wp-content/plugins/postaffiliatepro/js/admin-scripts.js/wp-content/plugins/postaffiliatepro/js/widget.js
Script Paths
/wp-content/plugins/postaffiliatepro/js/postaffiliatepro.js/wp-content/plugins/postaffiliatepro/js/admin-scripts.js/wp-content/plugins/postaffiliatepro/js/widget.js
Version Parameters
postaffiliatepro/css/style.css?ver=postaffiliatepro/css/admin-styles.css?ver=postaffiliatepro/css/widget.css?ver=postaffiliatepro/js/postaffiliatepro.js?ver=postaffiliatepro/js/admin-scripts.js?ver=postaffiliatepro/js/widget.js?ver=

HTML / DOM Fingerprints

CSS Classes
pap-widget-title
Data Attributes
data-pap-urldata-pap-merchant-id
JS Globals
postaffiliatepro_vars
REST Endpoints
/wp-json/postaffiliatepro/v1/settings
Shortcode Output
[pap_affiliate_registration][pap_affiliate_login][pap_affiliate_details][pap_affiliate_commission_details]
FAQ

Frequently Asked Questions about Post Affiliate Pro