安全研究

安全漏洞
GNU gzip工具目录遍历漏洞

发布日期:2005-04-21
更新日期:2005-04-21

受影响系统:
GNU gzip 1.3.5
GNU gzip 1.3.4
GNU gzip 1.3.3
GNU gzip 1.2.4a
GNU gzip 1.2.4
描述:
BUGTRAQ  ID: 13290

gzip是一款非常流行的文件压缩工具。

多个版本的gzip中存在目录遍历漏洞,攻击者可能利用此漏洞非法访问文件。

在压缩文件时gzip在压缩文件中保留了原始名称但没有保留其路径。如果使用了gunzip的"-N"选项,就会将压缩文件中的原始名称用作解压文件的文件名。"gunzip -N"没有检查压缩文件的原始名称中是否含有"/"字符,因此攻击者就可能创建恶意的压缩文件,如果用户使用"gunzip -N"解压了该文件,就可能在文件系统的任意位置(如"/etc/nologin"或"/etc/cron.d/evil")创建文件。

<*来源:Ulf Harnhammar (ulfh@update.uu.se
        Imran Ghory (imranghory@gmail.com
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=111402732406477&w=2
        http://bugs.debian.org/cgi-bin/bugreport.cgi/dir-traversal-bug.gz?bug=305255&msg=3&att=1
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://bugs.debian.org/cgi-bin/bugreport.cgi/dir-traversal-bug.gz?bug=305255&msg=3&att=1

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

--- gzip.c.old 2005-04-18 23:15:05.449840344 +0200
+++ gzip.c 2005-04-18 23:24:30.596924928 +0200
@@ -933,6 +933,10 @@ local int create_outfile()
}
/* Create the output file */
remove_ofname = 1;
+ char *baseout;
+ baseout = base_name(ofname);
+ strncpy(ofname, baseout, sizeof(ofname));
+ ofname[sizeof(ofname) - 1] = '\0';
ofd = OPEN(ofname, flags, RW_USER);
if (ofd == -1) {
progerror(ofname);

厂商补丁:

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

http://www.gzip.org/

浏览次数:2613
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障