There isn’t much reason to be afraid of the GHOST (gethostbyname) CVE-2015-0235 vulnerability in the open-source Linux GNU C Library (glibc), is there? No, but it underscores the need for better open-source security practices.
The GHOST vulnerability, publicly disclosed by security vendor Qualys on an open-source security mailing list on Jan. 27, is a flaw that could potentially enable an attacker to execute arbitrary code.
“During a code audit performed internally at Qualys, we discovered a buffer overflow in the __nss_hostname_digits_dots() function of the GNU C Library (glibc),” the advisory warns. “This bug is reachable both locally and remotely via the gethostbyname*() functions, so we decided to analyze it—and its impact—thoroughly, and named this vulnerability “GHOST”.
While Qualys’ disclosure about the vulnerability is new—and the flaw has a shiny, new CVE, or Common Vulnerabilities and Exposures, number, too (CVE-2015-0235)—by Qualys executives’ own admission, the bug was fixed on Aug. 12, 2013 in the glibc-2.18 update.
The issue is that even though the upstream glibc project has had an update available since 2013, Linux distributions don’t always pull the latest upstream packages. Enterprise-class distributions tend to stay on specific versions of any given application—even the Linux kernel itself—for a period of time, even as the upstream project progresses.
Generally, by providing a “stable” release, enterprises face less risk of potential application breakage.
The top enterprise Linux distributions don’t just sit back while upstream projects update, though. The way the process is supposed to work is that critical security fixes and important stability updates are back-ported—that is added back into the older version of a given application that the Linux distribution includes.
The problem with the GHOST vulnerability is that (just like the ephemeral entity that it is named after) until Jan. 27, no one had identified the bug as actually being a vulnerability, meaning there was no reason for a backport as no one had actually seen the GHOST.
Red Hat is among the enterprise Linux vendors that has issued a patch for the GHOST issue. The patch advisory for Red Hat Enterprise Linux version 6 shows that the new version is glibc-2.12.1.149, meaning that the backport has been made to the glibc-2.2 version. Red Hat Enterprise Linux 6 was released in November 2010, so it’s no surprise that it was leveraging an older version of glibc.
For Red Hat Enterprise Linux 7, which came out June 10 2014, the new glibc-2.17-55 update has a fix for the GHOST vulnerability. That means that even though RHEL 7 debuted after glibc-2.18 was released in 2013 (with the fix that would prevent GHOST), it still didn’t have that newer version of glibc included. That’s not a surprise, and it’s not all that strange, either, given that it takes a significant amount of time for an enterprise Linux distribution to come together and using tried-and-true stable package updates is usually the normal practice.
Only the older versions of Ubuntu Linux—Ubuntu 12.04 LTS (long-term support) distribution released in 2012, and Ubuntu 10.04 LTS, released in 2010—are getting patches for GHOST. The LTS is Ubuntu’s enterprise release, offering up to five years of support. Both those releases came out before the glibc-2.18 update in 2013; so, again, there just wasn’t a prior reason for a backport.
It’s interesting to note, however, that the Ubuntu 14.04 LTS release that came out in April 2014 (prior to Red Hat Enterprise Linux 7) is not vulnerable to GHOST, as it already was using the updated glibc packages.
GHOST Bug Not New, but Can Haunt Older Linux Versions
The Risk
The real issue with GHOST isn’t that a vulnerability was found in an open-source package. The GHOST vulnerability was fixed before anyone ever even knew it existed. The issue is that package stability might represent a risk to security.
Any software bug is a potential exploit waiting to happen. The fact that GHOST wasn’t labeled a vulnerability until Jan. 27 potentially left some users at risk. Yet, admittedly, the risk is small since GHOST has never been exploited, and as yet, there isn’t even proof-of-concept exploit code available.
It is incumbent on Linux distributions to update from upstream projects as quickly as possible. For community Linux distributions, where enterprise stability is not a primary concern, that is the normal practice.
With one class of Linux distribution, known as a “rolling release,” the latest packages are always available for users to include. Linux users themselves can also always choose to manually pull from the upstream projects.
GHOST is not a vulnerability like Heartbleed, ShellShock or POODLE, which were zero-day issues. GHOST is an issue that doesn’t affect all Linux distributions and it’s an issue that was fixed 17 months ago.
The challenge is one of balancing the needs of enterprise stability with the constant flow of upstream updates. It’s a difficult balance to achieve, but let’s hope that the impacted Linux vendors redouble their efforts to make sure that users aren’t left at risk from bugs that have already been patched.
Sean Michael Kerner is a senior editor at eWEEK and InternetNews.com. Follow him on Twitter @TechJournalist.