本文提出SyzDirect,主要工作是识别入口syscall、参数优化、根据路径反馈来指导种子调度。对syzdirect进行漏洞复现和补丁测试,发现比其他内核fuzzer,漏洞复现提高320%,补丁测试提高25.6%。
io-uring子系统存在物理页任意长度越界读写,可以任意读写其后的sock对象,通过`sock->sk_data_ready`泄露内核基址,通过`sock.sk_error_queue.next`泄露sock对象的堆地址,通过伪造`sock.__sk_common.skc_prot->ioctl`函数指针劫持控制流。
本文提出AlphaEXP(基于KINT [48], Syzkaller [19], Soufflé [28]实现),首先构造知识图谱来表示内核对象、内核功能和用户输入的关系,然后根据给定漏洞探索可能的攻击路径,标记可利用的对象,最后评估攻击路径的可行性,并对可利用的对象进行分类。
作者提出RetSpill,**通过syscall将用户数据(ROP链)布置到内核栈上,然后结合控制流劫持(CFH)漏洞进行提权,能够绕过当前Linux内核上开启的所有防护机制(例如FG-KASLR)**。作者还提出了新的防护机制。
作者调研了43个Linux发行版和230个漏洞,在发行版内核上复现上游PoC,在root权限下成功复现19.1%,非root权限下只成功复现0.9%。**大部分高危漏洞在下游内核中无法复现**。本文开发了**SyzBridge,自动调整上游PoC以适应各种下游发行版内核,来真实反映内核漏洞的危害程度**,并集成了SyzScope工具(识别高危的利用原语)。
K-LEAK工具是一种基于图的数据流分析框架,针对Linux内核中的内存漏洞(UAF/OOB),辅助生成infoleak的利用,绕过内核KASLR防护。本文**将infoleak利用生成问题看作是数据流搜索问题**,通过对内存错误引入的非预期数据流,以及现有内存错误如何转化为新的内存错误进行建模,K-LEAK能够系统性的搜索出多步infoleak数据流路径。
netfilter子系统nf_tables组件中存在UAF漏洞,漏洞对象是skb。采用Dirty Pagedirectory利用方法,构造重叠的PMD页和PTE页,实现任意物理地址写。
利用堆漏洞(UAF/Double-Free/OOB)篡改末级页表中的PTE条目,实现任意物理地址读写。
【kernel exploit】CVE-2022-2602-UNIX_GC错误释放io_uring注册的file结构-UAF
【bsauce读论文】2023-S&P-内核Use-After-Cleanup漏洞挖掘与利用