近日,国家信息安全漏洞共享平台(CNVD)收录了部分厂商设备存在的SNMP协议社区字符串认证权限绕过漏洞(CNVD-2017-05535,对应CVE-2017-5135,发现者命名为“StringBleed”)。攻击者可利用任意字符串或整数值来绕过SNMP的访问控制,在MIB(管理信息库)中写入任意字符串,从而获得设备的敏感信息。

一、漏洞情况分析

简单网络管理协议(SNMP)由一组网络管理的标准实现组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。MIB(Management Information Base)是设备的管理对象信息库(或称数据库),它包括SNMP可以通过网络设备的SNMP管理代理进行设置的变量。SNMP 协议V1和V2版本在设备中实现时是通常使用Community String "社区字符串"来进行客户端的身份验证,而在V3版本中则可以由客户配置选择用户名、密码以及其他身份验证的方式,而对象标识符(OIDs)等内容信息则会保存在管理信息库(MIB)之中。

SNMP v1和v2版本所使用的身份验证机制只能接受保存在SNMP代理验证机制中的数据值, 而V1和V2版本在多个厂商设备实现时存在一个远程代码执行漏洞,利用特定构造的字符串或整数值可绕过SNMP的访问控制,然后在MIB(管理信息库)中写入任意字符串。这样攻击者就可以在不用去尝试community string的情况下从目标设备中获取到类似用户密码这样的敏感信息。

CNVD对该漏洞的综合评级为“高危”。

二、漏洞影响范围

漏洞存在于应用SNMPv1版本和v2版本的多个厂商网络设备中,国外漏洞发现者的测试实例是CISCO DPC3928SL。根据CNVD秘书处抽样测试结果,已经在多个互联网实例中抽样验证存在风险。根据不完全统计,有超过100种网络设备受到StringBleed漏洞影响,影响的产品类型包括路由器(无线、有线)、VoIP网关、其他拨号网关等,相关设备型号列举如下:

5352BCW700JBCW710JBCW710J2C3000-100NASCBV734EWCBV38Z4ECCBV38Z4ECNITCBW383G4JCBW38G4JCBW700NCG2001-AN22ACG2001-UDBNACG2001-UN2NACG2002CG2200CGD24G-100NASCGD24G-1CHNASCM5100CM5100-511CM-6300nDCX-3200DDW2600DDW2602DG950ADPC2100DPC2320DPC2420DPC3928SLDVW2108DVW2110DVW2117DWG849DWG850-4DWG855EPC2203EPC3212IB-8120-W21IB-8120-W21E1MNG2120JMNG6200MNG6300SB5100SB5101SB5102SBG6580SBG900SBG901SBG941SVG1202SVG2501T60C926TC7110.ARTC7110.BTC7110.DTC7200.d1ITC7200.TH2v2THG540THG541Tj715xTM501ATM502BTM601ATM601BTM602ATM602BTM602GTWG850-4UTWG870TWG870UU10C019U10C037VM1700DWTM552GWTM652GDCM-704DCM-604DG950S

三、防护建议

目前,包括思科在内的多个设备厂商产品都受到漏洞影响,建议设备用户检查配置情况,启用SNMP v3进行身份验证。

附:参考链接:

http://www.cnvd.org.cn/flaw/show/CNVD-2017-05535

https://stringbleed.github.io/