公司介绍
企业文化
员工心声
加盟安络
与我们联系
产品简介
安全专家
评估产品
服务体系
专家检测
检测服务
案例分析
咨询建议
系统漏洞
安全工具
参考资料
安全论坛
安全文摘
 

CDF库src/lib/cdfread64.c文件栈溢出漏洞 (Other,补丁)
 
涉及程序:
CDF
 
描述:
CDF库src/lib/cdfread64.c文件栈溢出漏洞
 
详细:
通用数据格式(CDF)是由NASA戈达德航天飞行中心开发的用于存储和操控标量和多维数据的数据格式。

CDF库在打开无效的CDF输入文件时存在栈溢出漏洞,允许攻击者在使用该库的应用程序环境中执行任意指令或导致整个应用程序崩溃。

漏洞存在于src/lib/cdfread64.c文件的以下代码中。Read32s_64函数将数据从文件读取到缓冲区,temp缓冲区大小为MAX_READ32s,但没有检查count参数,因此大于MAX_READ32s的参数可能会触发栈溢出。

/-----------

57 STATICforIDL Logical Read32s_64 (fp, buffer, count)
58 vFILE *fp;
59 Int32 *buffer;
60 int count;
61 {
62 #if defined(NETWORKbyteORDERcpu)
63   if (count < 1) return TRUE;
64   if (!READv64(buffer,(size_t)4,(size_t)count,fp)) return FALSE;
65 #else
66 #define MAX_READ32s CDF_MAX_DIMS     /* This must be the maximum of
67                              CDF_MAX_DIMS and
MAX_VXR_ENTRIES
68                             (and for any other uses of
69                             `Read32s'). */
70   int i; Int32 temp[MAX_READ32s];
71   if (count < 1) return TRUE;
72   if (!READv64(temp,(size_t)4,(size_t)count,fp)) return FALSE;

- -----------/

ReadGDR64还在src/lib/cdfread64.c调用了Read32s_64函数:

/-----------

256   #if defined(STDARG)
257   STATICforIDL CDFstatus ReadGDR64 (vFILE *fp, OFF_T offset, ...)
258   #else
259   STATICforIDL CDFstatus ReadGDR64 (va_alist)
260   va_dcl
261   #endif
262   {

.
.
.

301       if (!Read32_64(fp,&(fp->GDR64->rNumDims))) return CRE;
302       if (!Read32_64(fp,&(fp->GDR64->NzVars))) return CRE;
303       if (!Read64_64(fp,&(fp->GDR64->UIRhead))) return CRE;
304       if (!Read32_64(fp,&(fp->GDR64->rfuC))) return CRE;
305       if (!Read32_64(fp,&(fp->GDR64->rfuD))) return CRE;
306       if (!Read32_64(fp,&(fp->GDR64->rfuE))) return CRE;
307       if (!Read32s_64(fp,fp->GDR64->rDimSizes,
308                 (int)fp->GDR64->rNumDims)) return CRE;

- -----------/

在307行使用fp->GDR64->rNumDims变量作为count参数调用了有漏洞的函数。由于这个变量是在301行从文件中加载的,因此是可控的。

<*来源:Alfredo Ortega

链接:http://www.coresecurity.com/?action=item&id=2260
     http://cdf.gsfc.nasa.gov/CDF32_buffer_overflow.html
*>

受影响系统:
NASA CDF 3.2
不受影响系统:
NASA CDF 3.2.1
 
攻击方法:
警 告

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

http://www.coresecurity.com/?action=item&id=2260
 
解决方案:
厂商补丁:

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

http://cdf.gsfc.nasa.gov/index.html
 
附加信息:
 
发布时间:2008年5月7日

返回

版权所有,如需转载,请与安络联系