MEKOD/not-a-security-issue
GitHub: MEKOD/not-a-security-issue
针对macOS IOSurface内核扩展中确定性UAF漏洞的概念验证代码,可由非特权用户稳定触发内核Panic。
Stars: 5 | Forks: 1
# 🍎 IOSurface 内核销毁期 Panic (macOS 15.x / 26.x)
本仓库记录了一个在 `com.apple.iokit.IOSurface` 中由非特权用户上下文触发的确定性内核 panic,该问题同时影响 macOS 15.x 和最新的 26.x 版本。
### 🛡️ 披露背景
此问题已报告给 Apple,并经过了其官方的安全审查流程。Apple 的最终结论是:
由于供应商已正式将其归类为**非安全漏洞**,因此本概念验证(Proof of Concept)作为有关系统稳定性和“预期”内核行为的技术探讨被公开分享。
### 🧩 技术概要
该 PoC 通过在 IOSurface 内存管理逻辑中诱发复杂状态,在进程销毁期间触发内核 panic。
**核心发现:**
- **零权限要求:** 可由任何标准用户态进程触发。
- **状态型破坏:** 需要约 386,000 次特定操作序列来准备内核堆。
- **确定性:** 使用固定的 RNG 种子,每次都能复现完全相同的崩溃状态。
- **可靠的结果:** 必定导致全系统拒绝服务(内核 Panic)。
### ⚙️ 运行机制
1. **堆装饰:** 对内核堆进行战略性碎片化处理。
2. **确定性变异:** 同步的属性操作。
3. **海量键值注入:** 强制产生特定的内存分配模式(约 65KB)。
4. **销毁触发:** 在清理这些“非安全”结构期间发生 panic。
### 🛠️ 构建与运行
```
# 编译并链接 Apple 特定 framework
clang++ -Wall -O3 not_a_security_issue.cpp -o poc \
-framework IOSurface \
-framework CoreFoundation \
-framework IOKit
./poc
```
*注意:执行后不久,您的系统将迅速重启。*
### 📊 事实概览
- **目标:** `com.apple.iokit.IOSurface`
- **类型:** 内存破坏 / 拒绝服务
- **状态:** **已被供应商确认非漏洞**
### ⚖️ 法律与道德免责声明
本仓库仅供教育和研究目的使用。由于供应商已正式声明此行为不构成安全问题,作者在此前提下分享此文档,假定其不会对 macOS 用户的安全构成风险。对于因使用此代码而导致的任何系统崩溃、数据丢失或“稳定性改善”,作者概不负责。
**使用风险自负。或者干脆别用——毕竟,这又不是什么安全问题。**
标签:0day挖掘, Apple安全, C++, clang, CVE, DoS, IOKit, IOSurface, Kernel Panic, macOS 15, PoC, UAF, Use-After-Free, Web报告查看器, 内存损坏, 内核安全, 内核漏洞, 堆喷射, 堆风水, 拒绝服务, 数字签名, 数据擦除, 无权限, 暴力破解, 本地提权, 概念验证, 漏洞复现, 系统崩溃, 零点击