本文撰写于2021年1月31日凌晨,为满足90天披露的原则,定时于2021年4月30日上午8点整发布。

Timeline

  • 2020年12月13日,发现漏洞
  • 2021年1月25日,向H3C报告漏洞细节
  • 2021年1月28日,H3C反馈:设备停产,拒绝修复

Details

涉及产品型号:ER3100

涉及固件版本:包括但不限于V201R020

漏洞类型:栈溢出(可利用)

漏洞危害:高危

漏洞位置:漏洞发生在设备web管理服务,受影响可执行文件是/bin/webs;
如下方IDA反汇编截图所示,/bin/webs的asp_search_arp函数中,获取Query String中的LASTIP参数后会将LASTIP向栈上固定长度缓冲区写入,但并未校验LASTIP参数长度。经测试,长度大于79的LASTIP参数字符串将导致栈溢出的发生

H3CER3100V20R020-webs-arpingBOf.png

PoC:触发漏洞的HTTP报文截图如下

H3CER3100V20R020-webs-arpingBOf-PoC.png

其中LASTIP的组成为75个’a’与URL编码%10%04%60%78解码后的字符串(覆盖返回地址为WatchDogSysReboot函数地址,使得设备重启)

H3CER3100V20R020-webs-arpingBOf-WatchDogSysReboot.png

漏洞发现:

C0ss4ck @ Bytedance Wuheng Lab
H4lo @ DbappSecurity HAT Lab