17611538698
webmaster@21cto.com

微软宣布 MacOS 和 Linux 上使用的“ncurses”有内存损坏漏洞

安全 0 646 2023-09-19 11:51:23

图片

21CTO导读:ncurses 扩展库存在环境变量提权等漏洞,开发者需留意并修正。

背景

当地时间9月14号,微软发布警报,称 MacOS 和 Linux 中使用的软件“ncurses”存在重大漏洞。

“ncurses”是一个已有 30 年历史的库,它的名字表示是新的 curses,其提供了一组API接口,支持编写文本用户界面(TUI)或具有图形外观的的控制台应用。它正广泛应用于 MacOS 、Linux 和 FreeBSD 等主流操作系统。

此次公布的漏洞是一个可能导致内存损坏的缺陷,其编号为CVE-2023-29491。在 CVSS 得分为“7.8”,重要性级别为“高”。微软正与苹果公司合作修复了CVE-2023-29491相关的macOS特定问题。

微软威胁情报研究人员Jonathan Bar Or、Emanuele Cozzi 和Michael Pearse 在发布的一份技术报告中说:利用环境变量中毒,攻击者可以利用这些漏洞提升许可权,在程序上下文中运行代码或执行其他恶意操作。

ncurses 缺陷允许环境变量中毒

环境变量是使用者自定义的值,可在系统中多个程序使用,并可影响它们在系统中的行为方式。操纵这些变量会导致应用程序执行未经授权的操作。

微软指出,ncurses 库使用独立于终端的终端数据库(不需要提前知道终端的功能)。这表示此库可以访问有关正使用终端的一组关键信息。

微软的代码审核和模糊测试发现,ncurses会搜索包含TERMINFO (终端数据库环境变量)在内的多个环境变量,这些变量可能会被病毒化,指向任意目录,并与已发现的漏洞相结合,从而实现许可权升级。

这些漏洞包括堆栈信息泄漏、参数化字串类型混淆、在Terminfo 数据库解析过程中出现堆栈越界,以及字符串拒绝服务等。

HOME 是 ncurses 使用的另一个环境变量,可以通过类似的技术中毒。

“每个现代操作系统都包含一组可能影响程序行为的环境变量,”微软表示。“攻击者众所周知的技术是操纵这些环境变量,使程序执行有利于其恶意目的的操作,从而‘毒害’它们。”

6.4及更早版本中发现的漏洞

微软表示,漏洞的发现归功于 Gergely Kalman 的贡献,他在 Twitter 上私下协助微软通过多个用例推进了这项安全病毒研究。

微软指出,虽然审核是在最新版本的 ncurses 6.4 上进行的,但该库的早期版本也可能带有一些或所有这些漏洞。

微软表示:“有趣的是,虽然我们检查的 ncurses 版本是 6.4(研究时的最新版本),但 macOS 上的 ncurses 版本是 5.7,但有几个由苹果维护的安全相关补丁。” “尽管如此,我们的所有发现对于所有 ncurses 版本都是正确的,因此对 Linux 和 macOS 系统都有影响。”

微软建议使用 Microsoft Defender 来检测和防止 Linux 和 macOS 上潜在的 TERMINFO 数据库滥用。

微软也针对此漏洞提供了安全更新,强烈建议开发者和用户应用该更新。

微软博客地址:

https://www.microsoft.com/en-us/security/blog/2023/09/14/uncursing-the-ncurses-memory-corruption-vulnerabilities-found-in-library/

作者:场长

评论