Apple has rewarded a security researcher $75,000 for discovering a total of seven zero-days in the Safari browser. Using only three of these flaws, an intruder could build an attack chain and access the camera and microphone on iOS and macOS devices to spy on unsuspecting people.
Ryan Pickren shared his discoveries with Apple in December 2019. The company patched the camera exploit in Safari 13.0.5, released on Jan. 28; the remaining zero-days were fixed in Safari 13.1, released on March 24. They were assigned these CVEs: CVE-2020-3852, CVE-2020-3864, CVE-2020-3865, CVE-2020-3885, CVE-2020-3887, CVE-2020-9784, and CVE-2020-9787.
Last December, Pickren decided to dig into Safari to "hammer the browser with obscure corner cases" until he discovered weird behavior that could be combined into a kill chain. He already had experience hunting for Safari bugs: In late 2018, when he was a penetration tester for Amazon Web Services, Pickren received seven universal cross-site scripting (UXSS) CVEs in the browser. However, he notes, these were found before Apple opened its bug bounty program to all security researchers in December 2019.
Pickren says his main goal for this project was to access the camera on iOS and macOS devices. All the other vulnerabilities he uncovered along the way were considered "bonus bugs."
"It took about two weeks of intense research," Pickren says of the process that led to the discovery of seven zero-days. The project required him to "dive deep into HTML spec" and spend "countless hours" doing trial and error, he adds. "I was honestly pretty surprised by how many speed bumps I ran into," he says. "However, I was lucky enough to find bypasses for all of them."
The camera security model in iOS and macOS "is pretty intense," Pickren writes in a technical blog post on his findings. As Apple users know, each app must be explicitly granted permission to access the camera and microphone. Most do this by displaying a pop-up alert on the screen.
But as with all rules, there is an exception: Apple's own apps have free camera access and can open it without asking permission. Further, Pickren adds, new Web technologies like the MediaDevices Web API allow websites to leverage Safari's permission to access the camera. "But ... this new web-based camera tech undermines the OS's native camera security model," he says.
The vulnerabilities he found exist in the way Safari parsed Uniform Resource Identifiers (URIs), managed Web origins, and initialized secure contexts. The camera attack chain could let malicious websites disguise themselves as trusted sites when viewed on Safari. If an attacker created a website and wanted camera access, it would only need to pretend to be a conference site like Skype or Zoom. Stringing the three flaws together would let the site access the camera.
Pickren reported the bug to Apple under its Security Bounty Program rules and provided a live demo under BugPoC. Apple classified the camera exploit under the category "Network Attack without User Interaction: Zero-Click Unauthorized Access to Sensitive Data" and paid $75,000.