【漏洞分析】CVE-2021-0920-Linux垃圾回收机制竞争UAF
【bsauce读论文】PSPRAY-基于时序侧信道的Linux内核堆利用技术
nf_table模块的 `net/netfilter/nf_dup_netdev.c`中的 `nft_fwd_dup_netdev_offload()`函数由于计算分配空间与实际初始化时判断条件不一致,存在**OOB write**,**溢出写入一个 `net_device` 对象的地址(位于kmalloc-4k)**,且漏洞对象的大小可以变化(由传入的含 `NFT_OFFLOAD_F_ACTION` 标记的rule个数决定,可以位于 `kmalloc-128` 或 `kmalloc-192` 等等),需要 `SYS_ADMIN` 权限。
openvswitch 内核模块中,reserve_sfa_size()函数存在整数溢出导致 **kmalloc-0x10000 堆溢出写**,需要利用页喷射构造 cross-cache 溢出。先创建pipe并splice到只读文件`/usr/bin/mount`,堆喷伪造 `pipe_buffer->flags = PIPE_BUF_FLAG_CAN_MERGE` ,这样就能往 `/usr/bin/mount` 文件写入 suid-shell 然后执行提权。
利用poll_list对象构造kmalloc-32任意释放
针对cred结构的cross-cache利用
在`nftables` 模块的 `NFT_MSG_NEWSET` 功能来添加 `nft_set` 时,处理 `lookup` 和 `dynset` expression 时,`nft_expr` 对象释放后仍位于`nft_set->binding` 链表中,新加入 `nft_expr` 时导致**UAF写**。
由于将 `route4_filter` 对象从链表中删除和释放时的检查条件不一致,导致该对象被释放后仍存于链表中,后面可以触发 **Double-Free**。需要 `User Namespaces` 才能触发。采用 DirtCred 方法进行提权。
【kernel exploit】CVE-2021-4154 错误释放任意file对象-DirtyCred利用
【bsauce读论文】 DirtyCred-内核凭证替换利用技术
Linux kernel CVE exploit analysis report and relative debug environment. You don't need to compile Linux kernel and configure your environment anymore.
Anything about kernel security. CTF kernel pwn, kernel exploit, kernel fuzz and kernel defense paper, kernel debugging technique, kernel CVE debug.
There are some papers about fuzzing. I record them by Xmind. Welcome to contact to me.
Something about CTF and vulnerability environment, mainly about kernel exploit.
The best vulnerable driver to learn how to exploit kernel vulnerability.