安全研究

安全漏洞
WinUAE zfile.c本地栈溢出漏洞

发布日期:2007-12-21
更新日期:2007-12-24

受影响系统:
WinUAE WinUAE <= 1.4.4
不受影响系统:
WinUAE WinUAE 1.4.5
描述:
BUGTRAQ  ID: 26979

WinUAE是老式计算机Amiga的游戏模拟器。

WinUAE支持各种类型的压缩软盘镜像,其中Gzip压缩(gz、adz、roz和hdz扩展名)是由名为zfile_gunzip的内部函数处理的。该函数使用了1000(MAX_DPATH)字节的栈缓冲区包含压缩文档中可用的文件名,在将文件名拷贝到缓冲区时没有执行长度检查,这可能触发栈溢出,导致执行任意指令。zfile.c文件中的漏洞代码如下:

struct zfile *zfile_gunzip (struct zfile *z)
{
    uae_u8 header[2 + 1 + 1 + 4 + 1 + 1];
    z_stream zs;
    int i, size, ret, first;
    uae_u8 flags;
    long offset;
    char name[MAX_DPATH];
    uae_u8 buffer[8192];
    ...
    do {
        zfile_fread (name + i, 1, 1, z);
    } while (name[i++]);
    ...

<*来源:Luigi Auriemma (aluigi@pivx.com
  
  链接:http://marc.info/?l=bugtraq&m=119826646424987&w=2
        http://secunia.com/advisories/28208/
*>

测试方法:

警 告

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

http://aluigi.org/poc/winuaebof.zip

建议:
厂商补丁:

WinUAE
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.winuae.net/files/WinUAE1450.zip

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