关于Objective Systems ASN1C堆缓冲区溢出漏洞的安全公告

2016-07-22 17:00:42

安全公告编号:CNTA-2016-0033

近日,国家信息安全漏洞共享平台(CNVD)收录了Objective Systems ASN1C堆缓冲区溢出漏洞(CNVD-2016-05147,对应CVE-2016-5080)。未经身份验证的攻击者利用漏洞,通过构造ASN.1数据,可执行任意代码或造成拒绝服务攻击。根据目前评估的潜在影响范围,有可能对通信网络(特别是移动通信)等关键基础设施构成较大的威胁。

一、漏洞情况分析

ASN.1(抽象语法标记)是一个国际标准,是电信领域使用的数据结构和传输协议。ASN1C代码编译器由美国Objective Systems公司推出,帮助开发者将ASN.1数据结构,操作和指令转换为C,C ++,C#或Java代码;ASN1C可嵌入到部署了GSM和LTE网络的移动设备的应用程序中。

包含预编译asn1rt_a.lib库的rtxMemHeapAlloc函数存在两个整数溢出漏洞。由于在rtxMemHeapAlloc中的内存堆(pMemHeap)需要调用tortxMemHeapCreate和rtxMemHeapCheck,nbytes,参数(arg_4)是人为可控的,它的值通过ebp+arg_4传递给ecx ,但程序在执行add ecx 7的时候未验证ecx的值,当ecx值高于0xFFFFFFF9会造成整型溢出。攻击者利用漏洞通过构造的ASN.1数据,可执行任意代码或造成拒绝服务。

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

二、漏洞影响范围

漏洞影响ASN1C<=7.0.0的版本。

ASN1C到C和C ++的编译器受该漏洞影响,Objective Systems仍在调查ASN.1到C#和ASN.1到Java的编译器是否受漏洞影响。

目前,根据国外应急组织(US-CERT)和官方厂商的努力,已经尝试联系了34家移动运营商和设备供应商,告知上述问题。目前,只有高通已经确认受到漏洞影响,而霍尼韦尔公司和惠普公司都表示它们没有受到漏洞影响。

三、漏洞修复建议

厂商发布了ASN1C 7.0.1.x版本作为临时修复方案,并计划在未来几周内推出7.0.2版本,完全修复该漏洞。请关注厂商主页更新:

https://www.obj-sys.com/

附:参考链接:

https://github.com/programa-stic/security-advisories/tree/master/ObjSys/CVE-2016-5080

http://news.softpedia.com/news/gsm-and-lte-mobile-networks-around-the-world-affected-by-serious-security-flaw-506465.shtml?from=groupmessage&isappinstalled=0

http://www.kb.cert.org/vuls/id/790839

http://www.cnvd.org.cn/flaw/show/CNVD-2016-05147