据报道,使用微软的 uAMQP C 库与 Azure 云服务通信的物联网IoT设备,可能面临由于周二披露的一个严重漏洞而导致的远程代码执行RCE风险。
Azure 云服务,包括 Azure Service Bus、Azure Event Hubs 和 Azure IoT Hubs,使用高级消息队列协议AMQP进行不同设备和应用程序之间的通信。受到影响的是“uAMQP”的 C 库,该库是一种轻量级的 AMQP 协议实现,专为内存或处理能力有限的设备设计,例如便携式物联网设备。
微软向使用 C 和 Python 编程语言的开发人员提供开源 uAMQP 库。
在 2 月 27 日,发布了一则 安全通知 到 Azure uAMQP 的 GitHub 仓库,警告该库中的一个漏洞可能会造成“双重释放”内存错误,从而导致 RCE 的条件成熟。
clash pro该漏洞的编号为 CVE202427099,其 CVSS 分数为 98,表示其严重性非常高,且可能被不具特权的远程攻击者利用,无需用户交互。根据 CVE 记录,“攻击复杂度”较低。
根据对这个漏洞的描述,uAMQP 库在处理不正确的“AMQPVALUE”失败状态时,可能会尝试两次释放相同的内存位置。这可能导致 RCE 的可能性,根据 CVE 的描述。
这种类型的“双重释放错误”是指同一内存位置被释放两次,从而导致内存管理数据结构的损坏,进而可能导致意外行为,例如崩溃或任意代码执行。
如果攻击者能够构造一个恶意请求,触发漏洞设备中的双重释放错误,那么攻击者就可以将自己的任意值注入堆内存中,网络安全研究员 Christophe Crochet 在他的 CVE202427099 分析中 写道。
“虽然利用此漏洞的具体方式依赖于应用程序的部署上下文和攻击者的创造力,但理解漏洞利用的机制至关重要。这种知识不仅有助于制定对策,还能培养安全意识强的开发文化,”Crochet 在 Medium 上表示。
CVE202427099 的修复是通过一个更新提交2ca42b6来解决的,该提交可防止双重释放错误,修复于 2 月 9 日首次添加。
已知此漏洞不会影响 Python uAMQP 库,该库每周下载量接近 150 万次,根据 Snyk 的统计。虽然 azureuamqpc 的活跃安装数量未知,但该项目在 GitHub 上有 63 个分支和 92 个依赖仓库。
SC 媒体已联系微软,希望获取更多有关该漏洞及使用其 uAMQP C 库与 Azure 云服务通信的设备的信息,但尚未收到回应。