Australian researcher Silvio Cesare has released a tool capable of automatically detecting bugs and vulnerabilities in embedded Linux libraries.

The script correlates vulnerability advisory CVEs for third party libraries to determine if holes have carried over to Linux platforms or have not been patched.

It identifies similar source files based on file names and content to identify relationships between source packages. Fuzzy hashing using ssdeep produces hashes that can be used to determine similar packages. Graph Theory is used to perform the analysis.

Such holes often escape the eye of developers because the libraries may not be kept updated with sources. This is further compounded because vulnerabilities in cross distributed packages can leave Linux platforms vulnerable.

Linux vendors have previously used laborious manual techniques to find holes in libraries. Debian alone manually tracks some 420 embedded packages, Cesare said at Ruxcon 2011.

“Processes used by developers so far have been ad-hoc and very slow,” Cesare told SC.

The researcher found 30 vulnerabilities in libraries embedded in Linux platforms when developing the tool as part of his PhD at Deakin University.

He found five packages in Debian and Fedora that were vulnerable to a buffer overflow found in libtiff in April. Mozilla Firefox had embedded libpng and was vulnerable for more than three months after the flaw was discovered.

Graph of Fedora packages. Credit: Silvio Cesare

Flaws in the vulnerability identification process meant that known vulnerabilities were often assigned different CVEs for separate packages.

While about 90 per cent of vulnerabilities produced by the tool were false-positives, Cesare said vetting the results takes seconds and was considerably faster than using manual processes.

Fedora incorporated Cesare’s results in an embedded library list database.

Cesare said he will publish an academic paper on the subject and plans to similar conduct binary analysis for Windows platforms.