macOS has a critical 'root' security bug — what you need to do right now

Apple has just released a security update for macOS High Sierra that patches the "root" vulnerability dropped yesterday. While this bug should never have shipped, Apple's response to the problem and turn around time on the fix have been impressive and reassuring.

Apple sent me the following statement:

"Security is a top priority for every Apple product, and regrettably we stumbled with this release of macOS," an Apple spokesperson told iMore.

When our security engineers became aware of the issue Tuesday afternoon, we immediately began working on an update that closes the security hole. This morning, as of 8:00 a.m., the update is available for download, and starting later today it will be automatically installed on all systems running the latest version (10.13.1) of macOS High Sierra. 

We greatly regret this error and we apologize to all Mac users, both for releasing with this vulnerability and for the concern it has caused. Our customers deserve better. We are auditing our development processes to help prevent this from happening again."

You can find the security update in Software Updates and if you're running macOS High Sierra, you should download and install it now, then make sure everyone you know does the same. If you don't, Apple will do it for you starting later today.

Here are the details on the patch, from Apple.com:

Security Update 2017-001

Released November 29, 2017

Directory Utility

Available for: macOS High Sierra 10.13.1

Not impacted: macOS Sierra 10.12.6 and earlier

Impact: An attacker may be able to bypass administrator authentication without supplying the administrator's password

Description: A logic error existed in the validation of credentials. This was addressed with improved credential validation.

CVE-2017-13872

When you install Security Update 2017-001 on your Mac, the build number of macOS will be 17B1002. Learn how to find the macOS version and build number on your Mac.

The original patch caused issues with files sharing so Apple has pushed out a new version, 17B1002, to correct the problem.


Prefer to listen rather than read? Hit play on the podcast version:

Get Vector in your inbox:

Subscribe for more: Apple Podcasts | Overcast | Pocket Casts | Castro | RSS


This is a zero-day exploit. Lemi Orhan Ergin tweeted to Apple's support account that he had discovered a way to log into a Mac running High Sierra by using the superuser "root" and then clicking the login button repeatedly. (Mac's running Sierra or earlier versions of the OS are not affected.)

Ergin should absolutely have disclosed this to Apple and given the company a chance to patch it before it went public, and Apple should never have allowed the bug to ship, but none of that matters right now.

Here's what's important: The "root" account allows super-user access to your system. It's supposed to be disabled by default on macOS. For whatever reason, it's not on High Sierra. Instead, "root" is enabled and currently allows access to anyone without a password.

For a basic explanation of what's causing the issue, see Objective See:

  • For accounts that are disabled (i.e. don't have 'shadowhash' data) macOS will attempt to perform an upgrade
  • During this upgrade, od_verify_crypt_password returns a non-zero value
  • The user (or attacked) specified passwor is then 'upgraded' and saved for the account

So, anybody who has physical access to your Mac or can get through via screen sharing, VNC, or remote desktop, and enters "root" and hits login repeatedly, can gain complete access to the machine.

Apple sent me the following statement:

"We are working on a software update to address this issue," an Apple spokesperson told iMore. "In the meantime, setting a root password prevents unauthorized access to your Mac. To enable the Root User and set a password, please follow the instructions here: https://support.apple.com/en-us/HT204012. If a Root User is already enabled, to ensure a blank password is not set, please follow the instructions from the 'Change the root password' section."

If you're comfortable with the command line, you can very quickly:

  1. Launch Terminal.
  2. Type: sudo passwd -u root.
  3. Enter and confirm your Root User Password. (Make it a strong, unique one!)

If not, you can use Open Directory Utility:

How to fix the root/ vulnerability on macOS High Sierra

  1. Click on Apple () at the far left of the menubar.
  2. Click on System Preferences.
  3. Click on Users and Groups.
  4. Click on the Lock (🔒) icon.
  5. Enter your Password.
  6. Click on Login Options.
  7. Click on Join or Edit.
  8. Click on Open Directory Utility.
  9. Click on the Lock (🔒) icon.
  10. Enter your Password.
  11. Click on Edit in the menubar.
  12. Click on Enable Root User.
  13. Enter and confirm your Root User Password. (Make it a strong, unique one!)

Do not disable the Root User. That just blanks the password and allows the exploit to work again.

Apple needs to fix this stat. In the meantime, share this information with everyone you know who uses a Mac on High Sierra and make sure they test and validate that "root" access is blocked before you let them resume their day.

Updated to include Apple's statement and Objective See's description of the problem.

Updated to include Apple's patch and statement on the patch.

Updated to include file sharing bug in the patch, and the updated patch to fix the file sharing bug.

macOS High Sierra

Main

macOS Sierra