Okta’s Research and Exploitation team released details on June 12 about an issue with third-party code-signing validation using Apple’s APIs. The flaw, which dates back to 2005, makes it possible for attackers to make malicious code appear to be signed by Apple when, in fact, it is not. Multiple third-party applications are affected – particularly those which offer “whitelisting services” – because developers misinterpreted the code-signing API, leading to incomplete signature validation in their applications.
The flaw affects packages from third-party vendors, including Google (CVE-2018-10405), Facebook (CVE-2018-6336) and VirusTotal (CVE-2018-10408), among others. Affected packages are listed on Okta’s advisory page. However, this flaw likely affects many other vendors.
This flaw exists because of the difference in the way the system loader (Mach-O) validates signed code and the way it’s validated by third-party security applications using the code- signing API.
The flaw takes advantage of the checking of the Fat/Universal file format and its use of several Mach-O files that apply to specific native CPU architectures. According to Okta, for the vulnerability to work:
- “The first Mach-O in the Fat/Universal file must be signed by Apple, can be i386, x86_64, or even PPC.
- The malicious binary, or non-Apple supplied code, must be ad-hoc signed and i386 compiled for an x86_64 bit target macOS.
- The CPU_TYPE in the Fat header of the Apple binary must be set to an invalid type or a CPU Type that is not native to the host chipset.”
This results in a partial signature check “…but without checking the CA [certificate authority] root of trust.”
Apple does not consider this an issue it would directly fix in the APIs. Instead, Apple has placed the onus on third-party developers who use the code-signing APIs.
Tenable Research has developed the following plugin for the issue and we continue to monitor the situation for our customers:
Google Santa < 0.9.25
- Okta advisory
- Learn more about Tenable.io, the first Cyber Exposure platform for holistic management of your modern attack surface
- Get a free 60-day trial of Tenable.io Vulnerability Management