Linux Kernel cifs_create()函数空指针引用漏洞

受影响系统:

Linux kernel 2.6.x

不受影响系统:

Linux kernel 2.6.29-rc6

描述:

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

Linux Kernel的fs/cifs/dir.c文件中的cifs_create()函数存在空指针引用错误。在支持unix扩展(如Samba)的服务器上创建文件时,如果所创建的文件没有提供nameidata(nd为空),cifs客户端在调用cifs_posix_open时就会崩溃。

<*来源:Eugene Teo (eugeneteo@eugeneteo.net
  
  链接:
http://secunia.com/advisories/39344/
        https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=579445
        http://comments.gmane.org/gmane.linux.file-systems.cifs/5782
*>

建议:

厂商补丁:

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

http://www.kernel.org/

已有第三方提供以下非官方补丁:

diff –git a/fs/cifs/dir.c b/fs/cifs/dir.c
index e9f7ecc..eef8d83 100644
— a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -317,7 +317,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
else
oflags = FMODE_READ;

– if (tcon->unix_ext && (tcon->ses->capabilities & CAP_UNIX) &&
+ if (nd && tcon->unix_ext && (tcon->ses->capabilities & CAP_UNIX) &&
(CIFS_UNIX_POSIX_PATH_OPS_CAP &
le64_to_cpu(tcon->fsUnixInfo.Capability))) {
rc = cifs_posix_open(full_path, &newinode, nd->path.mnt,

发表评论?

0 条评论。

发表评论