GHOST Bug Not New, but Can Haunt Older Linux Versions

NEWS ANALYSIS: The newly discovered GHOST vulnerability isn't really new, but it places renewed emphasis on how open-source security practices need to improve.

Linux security

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-, 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.

Sean Michael Kerner

Sean Michael Kerner

Sean Michael Kerner is an Internet consultant, strategist, and contributor to several leading IT business web sites.