IBM SolidDB solid.exe远程拒绝服务漏洞

受影响系统:

IBM solidDB 6.30.0.33
IBM solidDB 6.30.0.29

不受影响系统:

IBM solidDB 6.30.0.37

描述:

IBM solidDB是可实现电信级性能的关系数据库。

IBM SolidDB包含有一个内嵌式的数据库服务组件(solid.exe),该服务默认启用,在2315/tcp端口上接受远程连接。在从网络接收到报文时,服务会基于报文中所指定的出错代码编号确定并显示出错代码字符串。如果攻击者发送了带有无效出错代码编号的特制报文,就可以触发异常,强制终止服务。以下是有漏洞部分的代码段:

/—–
0061611F   0FB65424 02      MOVZX EDX,BYTE PTR SS:[ESP+2]
00616124   0FBF4C24 03      MOVSX ECX,WORD PTR SS:[ESP+3]
00616129   83F9 FF          CMP ECX,-1
0061612C   0FBF4424 05      MOVSX EAX,WORD PTR SS:[ESP+5]
00616131   8956 10          MOV DWORD PTR DS:[ESI+10],EDX
00616134   8B5424 07        MOV EDX,DWORD PTR SS:[ESP+7]
00616138   894E 14          MOV DWORD PTR DS:[ESI+14],ECX
0061613B   8946 18          MOV DWORD PTR DS:[ESI+18],EAX
0061613E   8956 0C          MOV DWORD PTR DS:[ESI+C],EDX
00616141   7D 09            JGE SHORT solid.0061614C
00616143   83F8 FF          CMP EAX,-1
00616146   7D 04            JGE SHORT solid.0061614C
00616148   3BC8             CMP ECX,EAX
0061614A   74 05            JE SHORT solid.00616151
0061614C   B8 01000000      MOV EAX,1
00616151   83C4 0C          ADD ESP,0C
00616154   C3               RETN

– —–/

上述代码基于报文中的Error Code字段检查出错情况,如果Error Code值小于或等于-1就会处理出错情况,在这种情况下会向用户显示包含有相关描述性的出错字符串的MessageBox。但通过创建Error Code字段值为非-1的负数值的报文,查询相应出错字符串就会失败,触发不可恢复的错误,终止服务器进程。

<*来源:Damian Frizza
  
  链接:
http://marc.info/?l=bugtraq&m=125856979712333&w=2
*>

测试方法:

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

 

http://marc.info/?l=bugtraq&m=125856979712333&w=2

建议:

厂商补丁:

IBM

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

http://www-01.ibm.com/support/docview.wss?rs=0&q1=solidb&uid=swg24024510

发表评论?

0 条评论。

发表评论