A deprecated Apple authorization application program interface (API) is still being used by many developers when installing updates on Mac operating systems.
Patrick Wardle, the chief security researcher at Synack, gave a presentation at last month’s DEF CON showing how a security issue with MacOS installers could, if abused, allow local attackers to install their own files.
No Modification Check in the Old API
Apple has known about the situation since 2013, and has already responded by creating a new interface that deals with the vulnerabilities. But the problem, Wardle said, is that many developers are just not using it.
The continued use of the AuthorizationExecuteWithPrivileges API leaves many applications vulnerable. Wardle found that the installers for Slack, Google Chrome, Dropcam and various security software programs, as well as the open source update library Sparkle, all used the deprecated version during their updates.
The problem with the older interface is simple: It does not verify that the file that is about to be executed has not been modified. A threat actor could get on to the machine by some means, such as a malicious email, and then lay in wait for the API to be called. Once called, the attacker can rewrite the file that is supposed to be installed and piggyback on the valid user credentials.
Apple came up with SMJobBless to get around this problem. With this method, the file is first copied to a more secure directory and cryptographically verified. This means that the developer has to cryptographically sign the file, along with other complexities.
Since the older variant is far less complicated and takes much less coding effort on the part of a developer to use, the older interface remains favored in day-to-day use. Developers told Threatpost that they did not consider the newer release to be a good replacement for the older, less secure one.
Apple should consider revisiting this problem to see if a more developer-friendly API solution is possible.