A broadly used programming library known as “ncurses” is infested by malicious gremlins — within the type of a number of reminiscence corruption vulnerabilities that give attackers a strategy to goal purposes operating in macOS, Linux, and FreeBSD.
Researchers from Microsoft uncovered the vulnerabilities within the library, which mainly offers APIs for text-based consumer interfaces and terminal purposes. In a technical report this week, researchers from the corporate’s menace intelligence staff described the bugs as permitting knowledge leaks, privilege escalation, and arbitrary code execution.
“After discovering the vulnerabilities within the ncurses library, we labored with the maintainer, Thomas E. Dickey, and Apple to make sure the problems have been resolved throughout platforms,” the researchers stated. “Exploiting vulnerabilities within the ncurses library might have notable penalties for customers, permitting attackers to carry out malicious actions like elevating privileges to run code in a focused program’s context and entry or modify worthwhile knowledge and assets.”
Notable Penalties for Customers
The library ncurses first turned accessible in 1993. Programmers throughout completely different platforms use it comparatively broadly for creating terminal consumer interfaces and interfaces in textual content mode. The library offers features for creating home windows, manipulating textual content, dealing with consumer enter, colours, and different use circumstances for terminal consumer interface purposes.
The vulnerabilities that Microsoft found have been all reminiscence corruption points in ncurses variations 6.4 20230408 and prior. The now-patched flaws particularly gave attackers a strategy to manipulate — or poison — an surroundings variable known as TERMINFO that ncurses makes use of to lookup a terminal’s capabilities and one other known as HOME that describes the trail to a consumer’s dwelling listing.
An surroundings variable is a variable whose worth does not have to be hardcoded right into a program. For instance, the HOME surroundings variable specifies the house listing location on a selected consumer’s system. At run-time a program would use the HOME surroundings variable to lookup data or worth related to the label. Setting variables restrict the necessity for software modifications each time configuration data modifications as would generally be the case when an app is utilized in completely different environments and by completely different customers.
Widespread Setting variable poisoning is a widely known assault approach the place attackers modify surroundings variable data in a way as to negatively affect software habits or to trigger it to crash. Widespread objectives embrace privilege escalation, arbitrary code execution, and triggering denial of service situations. Because the Microsoft researchers defined of their weblog, there have been a number of cases of vulnerabilities that allowed for surroundings variable poisoning up to now.
One instance the researchers pointed to was CVE-2023-22809, a vulnerability within the sudo command-line utility that permits customers in Unix-like environments, together with macOS, to run applications with elevated privileges. The vulnerability stemmed from how sudo’s EDITOR variable dealt with user-provided surroundings variables and mainly gave attackers a strategy to write arbitrary information to the system.
Easy methods to Take away the ncurses Curse
Microsoft found a complete of 5 reminiscence corruption vulnerabilities in ncurses that allowed for such variable poisoning. The maintainer of the library issued a patch for the vulnerabilities that are collectively recognized as CVE-2023-29491. Builders want to verify their libraries are up-to-date.
Microsoft researchers additionally labored with Apple’s safety staff on addressing the macOS particular points associated to the ncurses vulnerabilities. Apple on Sept. 8 launched an replace for macOS Monterey that acknowledged Microsoft for locating and reporting the problem to it — customers ought to replace their OS variations to make sure they’re shielded from assault. The corporate described the problem as giving cyberattackers a strategy to probably terminate operating purposes or execute arbitrary code on affected programs.
In the meantime, Pink Hat assessed CVE-2023-29491 to be a medium severity menace. “A vulnerability was present in ncurses and happens when utilized by a setuid software,” the corporate stated. “This flaw permits native customers to set off security-relevant reminiscence corruption by way of malformed knowledge in a terminfo database file present in $HOME/.terminfo or reached by way of the TERMINFO or TERM surroundings variable.”