思科安全研究人员
在攻击者可以组织传输复制数据大小的变量为负值的情况下,可以利用该漏洞执行代码(例如,传输超过 2 GB 的数据时,该变量将变为负值)。数据,但在攻击期间,要超出缓冲区限制,您需要传输至少 4GB)。 memcpy() 函数在应用中广泛使用,ARMv7 处理器常见于汽车系统、移动、工业、消费、通信和嵌入式设备,这些设备可能会受到使用蓝牙、HD Radio/DAB、USB、CAN 总线的攻击, Wi-Fi Fi 和其他外部数据源(例如,通过网络访问且接受无大小限制的输入数据的服务和应用程序可能会受到攻击)。
一个例子是创建一个有效的漏洞来攻击内置于汽车信息系统中的 HTTP 服务器,可通过汽车 Wi-Fi 网络访问。 外部攻击者可以通过发送非常大的 GET 请求来利用该服务器上的 memcpy 漏洞并获得系统的 root 访问权限。
在 32 位 x86 系统上,不会出现该问题,因为该架构的 memcpy 实现正确地将 size 变量解释为 size_t 类型的无符号整数值(用汇编语言表示)
该修复归结为将对有符号操作数(bge 和 blt)进行操作的汇编指令替换为无符号对应操作数(blo 和 bhs)。
问题还没有解决
来源: opennet.ru