The OS X command line developer tools include an old version of the Git source code management system that exposes Mac users to remote code execution attacks.
The Git client allows developers to interact with source code repositories. It is not installed by default on Mac OS X, but it is included in the Command Line Tools package for Xcode, Apple’s integrated development environment (IDE).
Software developers who create applications for OS X or iOS are likely to use Xcode and to have Apple’s Command Line Tools package installed on their Macs. The latest version of this package includes Git version 2.6.4, released in December.
The problem is that Git 2.6.4 has two serious vulnerabilities that were publicly disclosed last month. The flaws, tracked as CVE-2016-2315 and CVE-2016-2324, affect both client and server deployments on Git. On the client side, they could lead to remote code execution when cloning a repository with a large filename or a large number of nested trees.
The vulnerabilities were fixed in Git 2.7.4, released on March 17, but one month later Apple still hasn’t released an update to its Command Line Tools package.
Even worse, since the Git binary is installed as a system-level program, on OS X El Capitan (10.11) users can’t easily replace or update it themselves, according to systems administration expert Rachel Kroll. That’s because Apple’s latest OS X version includes System Integrity Protection (SIP), a mechanism that prevents modifying programs in certain protected directories like /usr and /bin, even with root privileges.
“Maybe you want to be clever and protect your users by disabling it until you can figure something else out,” Kroll said in a blog post. “Well, sorry. You also can’t ‘chmod -x’ to at least keep it from being used. It will also fail.”
Fortunately, there is a workaround, because /usr/bin/git is just a clever link to /Applications/Xcode.app/Contents/Developer/usr/bin, which can be modified. Running “chmod -x” on the latter binary will remove its execution privileges and ensure that no users or programs accidentally run it.
Then you have to wait until Apple releases a patched version as part of a future Command Line Tools package. However, Git is important for development tools and preventing its use could affect workflows.
Apple did not immediately respond to an inquiry about its plans of patching the Git binary that the company distributes.
“If you rely on machines like this, I am truly sorry,” Kroll said. “I feel for you.”