macOS 10.13.1 High SierraまでのmacOSに存在するIOHIDFamilyでは、非特権のユーザがカーネルの特権(Read/Write)を取得可能な不具合が存在し、その脆弱性がゼロデイとして公開されています。詳細は以下から。
iOSのJailbreakなどを研究しているSiguzaさんによると、macOS 10.13.1までのmacOSには非特権ユーザーでもカーネルのReal/Writeが可能になり、任意のコードを実行できるようになる可能性があるIOHIDFamilyの脆弱性(通称:IOHIDeous)があるとしてその詳細を公開しています。
Introduction
This is the tale of a macOS-only vulnerability in IOHIDFamily that yields kernel r/w and can be exploited by any unprivileged user.IOHIDeous | IOHIDFamily 0day
IOHIDFamilyには過去にも度々脆弱性が発見されAppleはこれを修正[1, 2, 3]してきましたが、この脆弱性はIOHIDFamilyのメモリ破損を利用し最終的には特権を持たないユーザーが完全なカーネルのRead/Writeを可能にしSIPを無効にする事ができるそうで、SiguzaさんはIOHIDeousを3部に分けて説明し、それぞれのPoCをGitHubで公開しています。
Usage
The exploit consists of three parts:
- poc panics the kernel to demonstrate the present of a memory corruption, should work on all macOS versions.
- leak leaks the kernel slide, could be adapted to other versions but as-is works only on High Sierra.
- hid achieves full kernel r/w, tested only on Sierra and High Sierra (up to & including 10.13.1), might work on earlier versions too.
Siguza/IOHIDeous: IOHIDFamily 0day – GitHub
また、一部のPoCは何らかの理由でmacOS 10.13.2では動作しなかったようですが、Siguzaさんがこの脆弱性をAppleに通知もせずゼロデイとして公開したことで批判を受けている事について、IOHIDeousのPoCはリモートではなくローカル権限昇格(LPE:Local Privilege Escalation)であり、今後は自分をフォローしてくれているAppleのセキュリティチームがフォローアップしてくれるだろうとコメントしています。
- IOHIDeous | IOHIDFamily 0day – Siguza
- Siguza/IOHIDeous: IOHIDFamily 0day – GitHub