分享
 
 
 

[AD_LAB-04003] Linux 2.6.* 内核Capability LSM模块进程特

王朝system·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

[安全通告]

通告:[AD_LAB-04003] Linux 2.6.* 内核Capability LSM模块进程特权信任状本地权限提升漏洞

分类:设计错误

日期:12/20/2004

CVE编号:NO

受威胁的系统:

Linux kernel 2.6.*

未受威胁的系统:

1.漏洞描述

当POSIX权能(Capability)LSM未被编译进内核时,在插入Capability模块(commoncap.ko和capability.ko)后,所有已经存在的普通用户

进程将具有所有的root特权!

2.技术细节

当特权操作由Capability LSM 模块控制时,系统基于进程信任状(creds)来仲裁特权操作。当Capability未被编译进内核时,内核使用默

认的安全模块(security/dummy.c)仲裁特权操作,机制非常简单,仅仅检查进程euid、fsuid(进行文件系统相关特权操作时)是否为0。

在这种情况下,dummy模块根本不关心进程的信任状,每个进程的信任状都拷贝其父进程的信任状。追根溯源,每个进程的信任状无论进程用

户是否为超级用户,最终都拷贝Init进程的信任状,信任状中包含有超级用户进程的所有权能。在根据用户ID进行特权判断情况下,此错误未

被激发。但在插入Capability模块后,特权机制转为根据进程信任状进行判断,而此前存在的任何进程的信任状都与Init进程一致,导致这些

进程都具有超级用户root的特权。此错误的本质是装载Capability模块时没有对已有进程的信任状按Capability机制的要求进行重新计算。试

验表明,此错误出现在2.6.* Linux内核中。

示例:

当Capability模块未被编译进内核时,(如果已经编译进内核,须disable相应编译选项后重新编译内核)。在装载Capability模块前,以普

通用户身份允许一个vim编辑器,在vim种输入命令:

:r /etc/shadow

vim 将回应 “can't open file /etc/shadow”,这个访问root文件操作的操作被拒绝。

不要终结vim,转到其它控制台以root身份登录,插入Capability模块:

#modprobe capability

在模块被转载后,回到vim中再次尝试打开shadow文件,将发现能够以普通用户读写并且保存(w!)shadow文件!根本的原因是vim进程的信

任状中包含了权能CAP_DAC_OVERRIDE和CAP_DAC_READ_SEARCH,因而能够进行超越访问控制策略的特权操作。

使用以下命令可查看vim的信任状:

$cat /proc/2454/status (2454 是vim进程的pid)

Name: vim

State: S (sleeping)

SleepAVG: 91%

Tgid: 2454

Pid: 2454

PPid: 1552

TracerPid: 0

Uid: 500 500 500 500

Gid: 500 500 500 500

FDSize: 256

Groups: 500

VmSize: 9356 kB

VmLck: 0 kB

VmRSS: 2728 kB

VmData: 856 kB

VmStk: 16 kB

VmExe: 1676 kB

VmLib: 3256 kB

Threads: 1

SigPnd: 0000000000000000

ShdPnd: 0000000000000000

SigBlk: 0000000000000000

SigIgn: 8000000000003000

SigCgt: 00000000ef824eff

CapInh: 0000000000000000

CapPrm: 00000000ffffffff

CapEff: 00000000fffffeff

最后3行即是vim的信任状,可以看到它具有除了CAP_SETPCAP外的所有Capability权能。

以上测试在 2.6.* 和2.5.72-lsm1中通过。

修正

在 security/capability.c中加入以下代码

static void recompute_capability_creds(struct task_struct *task)

{

if(task->pid <= 1)

return;

task_lock(task);

task->keep_capabilities = 0;

if ((task->uid && task->euid && task->suid) && !task->keep_capabilities)

cap_clear (task->cap_permitted);

else

task->cap_permitted = CAP_INIT_EFF_SET;

if (task->euid != 0){

cap_clear (task->cap_effective);

}

else{

task->cap_effective = CAP_INIT_EFF_SET;

}

if(task->fsuid)

task->cap_effective &= ~CAP_FS_MASK;

else

task->cap_effective |= CAP_FS_MASK;

task_unlock(task);

return;

}

并且在已有capability_init 函数在其返回前加入以下代码:

struct task_struct *task;

read_lock(&tasklist_lock);

for_each_process(task){

recompute_capability_creds(task);

}

read_unlock(&tasklist_lock);

return 0;

再次重复榆树测试示例,检查vim信任状如下

$cat /proc/(pid of vim)/status

Name: vim

State: S (sleeping)

SleepAVG: 91%

Tgid: 2864

Pid: 2864

PPid: 1552

TracerPid: 0

Uid: 500 500 500 500

Gid: 500 500 500 500

FDSize: 256

Groups: 500

VmSize: 9360 kB

VmLck: 0 kB

VmRSS: 2816 kB

VmData: 860 kB

VmStk: 16 kB

VmExe: 1676 kB

VmLib: 3256 kB

Threads: 1

SigPnd: 0000000000000000

ShdPnd: 0000000000000000

SigBlk: 0000000000000000

SigIgn: 8000000000003000

SigCgt: 00000000ef824eff

CapInh: 0000000000000000

CapPrm: 0000000000000000

CapEff: 0000000000000000

3.感谢

梁彬(liangbin@venustech.com.cn)发现并公布了此漏洞的具体技术细节

感谢启明星辰技术信息有限公司积极防御实验室的伙伴和丰收项目小组。

4.申明:

The information in this bulletin is provided "AS IS" without warranty of any

kind. In no event shall we be liable for any damages whatsoever including direct,

indirect, incidental, consequential, loss of business profits or special damages.

Copyright 1996-2004 VENUSTECH. All Rights Reserved. Terms of use.

VENUSTECH Security Lab

VENUSTECH INFORMATION TECHNOLOGY CO.,LTD(http://www.venustech.com.cn)

Security

Trusted {Solution} Provider

Service

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有