当前位置: 安全纵横 > 安全公告

一周安全动态(11月29日-12月5日)

作者:安恒信息 日期:2010-11

Linux Kernel Unix套接字本地拒绝服务漏洞

受影响系统:

Linux kernel 2.6.24.3 - 2.6.37

描述:


BUGTRAQ ID: 45037

Linux Kernel是开放源码操作系统Linux所使用的内核。

Linux Kernel在实现上存在漏洞,攻击者可以利用此漏洞引起内核消耗大量内存,导致拒绝服务。

例如,Unix套接字由两个进程用于交换数据,通过连接到特定文件,如果文件名用空字节('\0')开始,该文件将不会存储在文件系统中,但会在内核中使用抽象空间。shutdown()函数用于关闭套接字上的动作。当Unix套接字使用了抽象空间并用shutdown()关闭时,本地攻击者可以在调用 close()之前连接到这个套接字。但由于是部分关闭的,所以会在内核中出现无限循环,以锁定系统。

Linux kernel 2.6.35受到影响,其他版本也可能受到影响。

建议:


厂商补丁:
Linux
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.kernel.org/

Linux Kernel “inotify_init()”内存泄露本地拒绝服务漏洞
            

受影响系统:
Linux kernel 2.6.24.3 - 2.6.37

漏洞描述:

BUGTRAQ  ID: 45036
Linux Kernel是开放源码操作系统Linux所使用的内核。
Linux Kernel的实现上存在漏洞,本地攻击者可以利用此漏洞引起内存耗尽,导致拒绝服务合法用户。
当无法创建文件描述符时,Inotify没有正确地执行清理操作,导致泄露内核内存。
可以在运行下面的程序时注意“slabtop”:
#include <sys/inotify.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int fds[2];
/* Circumvent max inotify instances limit */
while (pipe(fds) != -1)
;
while (1)
inotify_init();
return 0;
}
问题在于组指示器泄露处的inotify_init1中:
group = inotify_new_group(user, inotify_max_queued_events);
[...]
ret = anon_inode_getfd("inotify", &inotify_fops, group,
O_RDONLY | flags);
if (ret >= 0)
return ret;
atomic_dec(&user->inotify_devs);
out_free_uid:
free_uid(user);
return ret;

安全建议:

厂商补丁:
Linux
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.kernel.org/

Microsoft Windows任务调度服务本地权限提升漏洞

受影响系统:
Microsoft Windows Vista
Microsoft Windows Server 2008
Microsoft Windows 7

描述:


BUGTRAQ ID: 44357

Microsoft Windows是微软发布的非常流行的操作系统。

Windows的任务调度服务实现上存在访问验证漏洞,本地攻击者可能利用此漏洞把自身的权限提升到SYSTEM权限,从而获取系统的完全控制。

任务调度服务没能正确阻止用户通过COM接口修改XML定义文件中的某些字段,导致恶意用户操纵一个有效的XML文件并绕过CRC校验,实现以SYSTEM权限执行任意指令。

建议:


临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 禁用任务调度服务(Task Scheduler Service)。
厂商补丁:
Microsoft
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.microsoft.com/technet/security/

Linux Kernel gdth实现内核内存破坏漏洞

受影响系统:
Linux kernel 2.6.x

描述:


CVE ID: CVE-2010-4157

Linux Kernel是开放源码操作系统Linux所使用的内核。

Linux Kernel的gdth_ioctl_alloc()函数取值大小变量为int型,而copy_from_user()函数取大小变量为无符长型。 gen.data_len和gen.sense_len为无符长型,在x86_64系统上长型为64位,int型为32位。如果用户传送了超长值的话,分配就会将大小截短为32位,分配过小的缓冲区,之后在执行copy_from_user()时可能导致内存破坏。

建议:


厂商补丁:
Linux
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f63ae56e4e97fb12053590e41a4fa59e7daa74a4