百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
K

kfd

> 编程语言
开源

kfd 是 kernel file descriptor 的缩写,是一个在 Apple 设备上读取和写入内核内存的项目。

998 stars0 点赞1 次浏览
访问官网GitHub

工具介绍

kfd 是 kernel file descriptor 的缩写,是一个在 Apple 设备上读取和写入内核内存的项目。

速速声明:我并无意为其他设备和 iOS 版本添加偏移量。

kfd 是一个项目,用于在 Apple 设备上读取和写入内核内存。它利用了可以被利用的各种漏洞,从而获取悬浮 PTE,将其称为 PUAF 原语,意为"物理使用后释放"。然后,它重新分配这些物理页面内的某些内核对象,并通过悬浮 PTE 从用户空间直接操作这些对象,以实现 KRKW 原语,意为"内核读/写"。漏洞代码完全包含在一个库中,libkfd,但该项目还包含适用于 iOS 和 macOS 的简单可执行包装程序。libkfd 的公共 API 非常小巧且直观:

c
enum puaf_method {
    puaf_physpuppet,
    puaf_smith,
    puaf_landa,
};

enum kread_method {
    kread_kqueue_workloop_ctl,
    kread_sem_open,
};

enum kwrite_method {
    kwrite_dup,
    kwrite_sem_open,
};

u64 kopen(u64 puaf_pages, u64 puaf_method, u64 kread_method, u64 kwrite_method);
void kread(u64 kfd, u64 kaddr, void* uaddr, u64 size);
void kwrite(u64 kfd, void* uaddr, u64 kaddr, u64 size);
void kclose(u64 kfd);
``` `kopen()` 从概念上来讲是打开一个"内核文件描述符"。它接受以下 4 个参数:

- `puaf_pages`: 目标数量的物理页面中有悬浮的 PTE。 - `puaf_method`: 用于获取 PUAF 原语的方法,有以下选项: - `puaf_physpuppet`: 此方法利用了 [CVE-2023-23536][1]。 - 已在 iOS 16.4 和 macOS 13.3 中修复。 - 可从 App Sandbox 访问,但不能从 WebContent sandbox 访问。 - Apple Security Bounty 奖励为 52,500 美元。 - `puaf_smith`: 此方法利用了 [CVE-2023-32434][2]。 - 已在 iOS 16.5.1 和 macOS 13.4.1 中修复。 - 可从 WebContent sandbox 访问,并且可能已被主动利用。 - `puaf_landa`: 此方法利用了 [CVE-2023-41974][3]。 - 已在 iOS 17.0 和 macOS 14.0 中修复。 - 可从 App Sandbox 访问,但不能从 WebContent sandbox 访问。 - Apple Security Bounty 奖励为 70,000 美元。

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言