就微软 Defender 安全研究团队博客文章的官方回应
当前状态速览
| 漏洞类型 | MTCommonActivity 组件 Intent 重定向(android:exported="true") |
|---|---|
| 受影响版本 | EngageLab SDK v5.2.0 及更早版本 |
| 修复版本 | SDK v5.2.1(2025年11月3日发布) |
| 利用情况 | 目前无已知在野利用记录(Google 安全团队于2025年12月2日确认) |
| Google Play | 运行受影响版本的相关应用均已从 Google Play 下架 |
| 开发者操作 | 如尚未升级,请立即将 SDK 升级至 v5.2.1 或更高版本 |
一、概述
2026年4月9日,微软 Defender 安全研究团队发布了一篇 博客文章 披露了 EngageLab Android SDK 中存在的 Intent 重定向漏洞。对此,我们希望公开做出说明,解释漏洞的技术背景,并为仍在使用受影响版本的开发者提供明确的升级指引。
感谢 Google 安全团队于2025年5月向我们通报了这一问题,并在整个修复过程中与我们保持了全程协作。该漏洞已在 SDK v5.2.1 中得到完全修复。2025年12月2日,Google 安全团队在独立验证后确认修复有效。
二、技术背景
2.1 什么是 Intent 重定向漏洞
Android 系统通过 Intent 机制实现应用组件之间以及应用之间的通信。当一个 Activity 组件在应用的 AndroidManifest 中被声明为 android:exported="true" 时,设备上的任意其他应用都可以向其发送 Intent。
Intent 重定向是指:恶意应用向某个受信任应用的已导出组件发送精心构造的 Intent;若该受信任应用未经验证就处理并转发这个 Intent,恶意应用便可「借用」受信任应用的身份和权限,访问其本无权访问的数据或组件。
2.2 EngageLab SDK 的漏洞根因
漏洞存在于组件 com.engagelab.privates.common.component.MTCommonActivity 中,该组件被配置为 android:exported="true"。
这一配置最初是为了满足部分设备厂商推送点击跳转的技术要求——其推送系统要求该 Activity 处于导出状态,才能正确处理通知点击事件。在当时,这是一个必要的兼容性设计。
该组件在构建过程中被添加至应用的 merged AndroidManifest(合并后的清单文件),而非开发者通常审查的源码清单,因此在安全审查中容易被忽视。这是集成第三方 SDK 的一个常见挑战:SDK 引入的组件只出现在编译产物中,而非开发者编写的代码里。
2.3 攻击场景
该漏洞的利用需同时满足以下两个条件:
- 目标设备上已通过其他途径安装了恶意应用。
- 目标应用集成了低于 v5.2.1 版本的 EngageLab SDK。
在满足以上条件的情况下,恶意应用可向 MTCommonActivity 发送构造的 Intent,诱使宿主应用以自身身份和权限转发该 Intent——从而可能授予恶意应用对宿主应用私有数据目录的持久读写权限,包括用户凭证、个人信息及财务数据等。
三、响应时间线
以下表格完整呈现了我们从首次收到通报到最终完成验证的全过程。整个修复过程经过多轮验证迭代,我们在每个阶段均与 Google 安全团队保持积极沟通,并在收到每次评估反馈后及时推进下一步修复工作。
| 时间 | 执行方 | 事件 |
|---|---|---|
| 2025.5.24 | Google 安全团队与 EngageLab 举行线上会议,说明 SDK 中存在的 Intent 重定向漏洞。 | |
| 2025.5.29 | EngageLab | EngageLab 回复 Google 安全团队,提交初步修复方案,请求重新检测。 |
| 2025.6.25 | Google 安全团队完成检测,回复初步方案仍存在安全隐患,需进一步修复。 | |
| 2025.8.18 | EngageLab | EngageLab 告知 Google 安全团队,新版本修复方案正在开发中,预自9月底发布。 |
| 2025.9.26 | EngageLab | EngageLab 发布 SDK v5.2.0,通知 Google 安全团队并请求重新检测。 |
| 2025.10.30 | Google 安全团队完成检测,回复 v5.2.0 中仍可检测到该漏洞,需再次修复。 | |
| 2025.11.3–4 | EngageLab | EngageLab 发布 SDK v5.2.1(完整修复:MTCommonActivity 设为 android:exported="false"),通知 Google 安全团队进行最终验证。 |
| 2025.12.2 | Google 安全团队确认 SDK v5.2.1 已完全修复该漏洞,未发现其他问题。 | |
| 2026.2.6 | EngageLab | 通过邮件及官方公告主动告知开发者 SDK v5.2.0 及更早版本存在安全漏洞风险,强烈建议立即升级至 v5.2.1 或更高版本。 |
| 2026.2.26 | EngageLab | 再次向开发者发出升级提醒,敬促完成 SDK 升级至 v5.2.1 或更高版本。 |
| 2026.4.9 | 微软 | 微软 Defender 安全研究团队发布公开博客文章。此时修复版本已发布逾5个月。 |
| 2026.4.15 | EngageLab | EngageLab 发布本官方安全声明。 |
关于时间线的说明:修复过程涉及 Google 安全团队的多轮独立检测,每次检测周期通常需要数周时间。这是协调漏洞披露流程的正常节奏,反映了第三方验证的严谨性,而非我们修复工作的停滞。我们在整个过程中始终保持主动沟通,并在收到每次评估反馈后及时响应。事实上,在此漏洞受到更广泛关注之前,EngageLab 已于 2026 年 2 月主动向开发者社区发出安全风险通知——早于微软博客文章发布逾两个月——并于当月晚些时候再次发出升级提醒。
四、修复内容
4.1 核心修复(SDK v5.2.1)
核心修复方案直接且有效:将 MTCommonActivity 的 android:exported 属性设置为 "false",从根本上阻断外部应用对该组件的访问入口。
修复前(存在漏洞):
<activity android:name="com.engagelab.privates.common.component.MTCommonActivity" android:exported="true" />
修复后(v5.2.1):
<activity android:name="com.engagelab.privates.common.component.MTCommonActivity" android:exported="false" />
4.2 为何此时可以完成修复
原有 exported=true 的配置源于部分设备厂商的推送跳转技术要求。在与相关厂商确认后,其当前系统版本均已支持将该组件设置为 exported=false。因此,最初出于兼容性考虑而设置此导出配置的背景已发生变化,当前在绝大多数活跃设备上,已无需强制保持此配置。
本次修改的影响范围:在运行当前系统版本的设备上(占活跃用户的90%以上),通知点击跳转功能不受影响。仅在极少数运行较旧系统版本的设备上,通知点击可能出现无法跳转的情况。我们将持续监测相关情况,如有必要,将提供进一步的兼容方案。
4.3 v5.2.1 的其他安全改进
- 对传入 Intent 数据增加输入验证处理。
- 减少 SDK 中的已导出组件数量,降低攻击面。
- 对 SDK 全部组件进行完整的安全代码审计。
五、开发者升级指引
5.1 请立即升级
如果您的应用集成了低于 v5.2.1 版本的 EngageLab SDK,请立即升级。v5.2.1、v5.2.3 和 v5.3.0 均包含此修复。
在 build.gradle 中添加如下依赖:
// 升级至 v5.2.1 或更高版本
implementation "com.engagelab:engagelab:5.2.1"
5.2 验证合并后的清单文件
升级并重新构建后,请检查合并后的 AndroidManifest.xml,确认 MTCommonActivity 的 exported 属性已为 false。合并清单文件位于:
app/build/intermediates/merged_manifests/<variant>/AndroidManifest.xml
每次集成或升级第三方 SDK 后检查合并清单,是一项就得养成的好习惯——它反映的是应用实际编译后的完整配置,包括所有由 SDK 引入的组件。
5.3 通用安全建议
- 每次 SDK 升级后,检查合并清单而非仅依赖源码清单。
- 对来自外部的 Intent 数据,在处理或转发之前务必做校验。
- 将第三方 SDK 安全审查纳入常规依赖更新流程。
六、我们的安全承诺
此次事件促使我们在研发和发布流程上做出以下改进:
- 每次 SDK 发布前,强制执行合并清单安全审查。
- 在 CI/CD 中引入针对导出组件配置的自动化静态分析扫描。
- 建立正式的公开安全公告计划——我们正在筹建专门的安全中心,以便未来能更及时地披露安全相关信息。
- 在软件开发生命周期中设立专项安全审查阶段。
我们目前正在对 SDK 开展更广泛的安全自查工作,结果将在后续公告中公开分享。
我们欢迎安全研究者的负责任披露。如您发现 EngageLab 产品中存在安全问题,请通过 security@engagelab.com 联系我们。我们承诺在24小时内确认收到报告,并48小时内给出初步评估。
感谢 Google 安全团队在整个协调披露过程中展现出的严谨态度与协作精神。
附录:受影响版本与修复版本
| 版本 | 状态 | 说明 |
|---|---|---|
| v5.2.0 及更早版本 | 存在漏洞 | 需立即升级 |
| v5.2.1 | ✅ 已修复 | 2025年11月3日发布,Google于12月2日确认修复 |
| v5.2.3、v5.3.0 | ✅ 已修复 | 同样包含此修复 |













