微软威胁情报团队指出,Google Play 商店中小米文件管理器和WPS Office两款流行的Android应用程序存在安全漏洞,可能导致攻击者获取用户数据。
该漏洞称为Dirty Stream,利用文件路径遍历攻击影响易受攻击的应用程序主目录。攻击者可通过此漏洞实现任意代码执行和令牌盗窃,从而完全控制应用程序行为,进而访问用户在线帐户和其他敏感数据。
虽然Android通过为每个应用程序分配专用的数据和内存空间来实现隔离,但它提供了内容提供程序来安全地促进应用程序之间的数据和文件共享。然而,疏忽的实现可能绕过应用程序主目录的读/写限制。
这种基于内容提供程序的模型提供了一个良好定义的文件共享机制,允许服务应用程序以安全的方式与其他应用程序共享文件并进行细粒度控制。然而,经常会发现应用程序没有验证接收到的文件内容,并且使用服务应用程序提供的文件名将接收到的文件缓存在应用程序的内部数据目录中,这是最令人担忧的。
如果服务应用程序声明FileProvider类的恶意版本以启用应用之间的文件共享,可能会导致严重后果,最终导致应用程序覆盖其专用数据空间中的关键文件。换句话说,这种机制利用了应用程序对输入的盲目信任,在用户不知情或未经用户同意的情况下,通过自定义的、显式的意图发送具有特定文件名的任意有效负载,从而导致代码执行。
因此,攻击者可能会利用这一机制覆盖目标应用的共享首选项文件,并使其与其控制下的服务器通信,从而泄露敏感信息。
另一种情况涉及从应用程序的数据目录加载本机库,而不是”/data/app-lib”。在这种情况下,恶意应用程序可以利用上述弱点,通过加载库时执行的恶意代码来覆盖本机库。
小米和WPS Office在2024年2月纠正了此问题,但微软表示,这个问题可能更普遍,要求开发人员检查其应用程序是否存在类似问题。谷歌也发布了指南,敦促开发人员正确处理服务器应用程序提供的文件名。谷歌表示,当客户端应用程序将接收到的文件写入存储时,应该忽略服务器应用程序提供的文件名,并使用自己内部生成的唯一标识符作为文件名。如果生成唯一文件名不切实际,客户端应用程序应清理提供的文件名。