施耐德电气IGSS拒绝服务漏洞CVE-2022-24314分析
时间:2022-06-23 作者:安帝科技
Schneider Electric Interactive Graphical SCADA System(IGSS)是法国施耐德电气(Schneider Electric)公司的一套用于监控和控制工业过程的SCADA(数据采集与监控系统)系统。
Part1 漏洞状态
Part2 漏洞描述
未经身份验证的远程攻击者可以通过多种途径强制 IGSSdataServer.exe 分配大量内存来存储攻击者控制的数据。攻击者可以提供少量数据来导致缓冲区过度读取情况,从而产生内存读取访问冲突,这是由 IGSSdataServer.exe 中实现的异常处理程序处理的。但是,异常处理程序不会释放攻击者分配的内存,攻击者可以反复向 IGSSdataServer.exe 发送特制消息以耗尽其内存,从而可能导致拒绝服务。
Part3 漏洞复现
1.实验环境
渗透主机:kail
靶机环境:win10
软件版本:IGSS v15.0
2.涉及工具
X64dbg
Python2
3.漏洞复现
1)在靶机中运行IGSS
点击开始,如下图所示:
2)POC 验证:
python igss_dataserver_memleak.py -t 192.168.0.104 -p 12401 -v
3)查看结果,查看:
IGSS Master -> Runtime and Diagnostics -> 详细状态中的数据服务器内存使用情况,查看IGSSdataServer.exe服务器日志:FetchControl_RMS::appendRequest,内存不足。
停止 POC 后,内存也未释放:
Part4 漏洞分析
使用x64dbg 附加进程调试:
分析此段代码大致流程为:
1)接受攻击者发送的数据判断是否分配内存:
接收的数据和发送的数据一致:
2) 内存分配:
分配的大小结合POC 分析为:0x4000000
3)判断内存是否分配成功,成功则调用memcpy,触发异常:分配大量内存来存储攻击者控制的数据。攻击者可以提供少量数据来导致缓冲区过度读取情况,从而产生内存读取访问冲突。
4) 分配失败则调用错误处理输出日志:
FetchControl_RMS::appendRequest,内存不足。
5)结合POC 分析:
攻击者可以反复连接IGSSdataServer.exe 发送特制消息,分配内存,断开socket连接后IGSSdataServer.exe 也未进行内存释放,导致耗尽其内存,从而可能导致拒绝服务。
5.修复建议
更新到 IGSS 数据服务器版本 15.0.0.22021 或更高版本。
————————————————————
获取更多情报
联系我们,获取更多漏洞情报详情及处置建议,让企业远离漏洞威胁。
电话:18511745601
邮箱:shiliangang@andisec.com