CVE-2025-65835CVE-2025-65835是Cordova插件cordova-plugin-x-socialsharing (SocialSharing-PhoneGap-Plugin) Android版本中的一个高危本地拒绝服务漏洞。该插件在Android 6.0.4版本中注册了一个导出的广播接收器nl.xservices.plugins.ShareChooserPendingIntent,该接收器配置了android.intent.action.SEND意图过滤器。由于onReceive实现直接访问Intent.EXTRA_CHOSEN_COMPONENT而未进行null值检查,当收到包含extras但不包含EXTRA_CHOSEN_COMPONENT字段的ACTION_SEND广播时,代码会解引用null值导致NullPointerException。更为严重的是,该接收器被标记为exported且未实施任何权限或调用者验证机制,这意味着设备上的任何本地应用程序都可以向此组件发送精心构造的恶意广播,持续触发崩溃条件,最终造成包含该插件的主机应用程序反复崩溃,形成应用程序级拒绝服务攻击。此漏洞影响所有使用此插件的Android应用程序,攻击门槛低,无需特殊权限或用户交互即可实施。
漏洞根源在于ShareChooserPendingIntent广播接收器的onReceive方法实现存在缺陷。该方法直接调用intent.getParcelableExtra(ShareChooserPendingIntent.EXTRA_CHOSEN_COMPONENT)而未进行null检查,当外部应用发送的Intent对象包含extras但缺少EXTRA_CHOSEN_COMPONENT字段时,getParcelableExtra返回null,随后的Parcelable强制转换或方法调用将触发NullPointerException。由于Android的Intent机制允许任何应用通过sendBroadcast向已导出的接收器发送广播,且该接收器未设置android:exported=false或添加android:permission属性进行访问控制,攻击者可以在无需申请任何权限的情况下构造恶意Intent:设置action为android.intent.action.SEND,添加任意类型的extra数据(如文本或文件路径),但不包含EXTRA_CHOSEN_COMPONENT字段,然后调用sendBroadcast方法发送。目标应用接收到此广播后将在主线程抛出未捕获的NullPointerException,导致应用崩溃。这种攻击可重复执行,实现持续性拒绝服务。修复方案需要在onReceive方法中添加null检查,或将接收器设置为非导出状态(android:exported=false)。