subtitle
03
21
EINSTEIN EINSTEIN
paper: https://www.usenix.org/system/files/usenixsecurity24-johannesmeyer.pdf paper introducedata-only attack 研究现状许多基于数据
2025-03-21 q1ming
21
eBPF漏洞汇总 eBPF漏洞汇总
漏洞汇总CVE-2021-3489ringbuf的reserve函数没有对size进行检查; CVE-2024-41009ringbuf的reserve中检查不当导致chunk重叠; CVE-2024-45020verifier中stack
2025-03-21 q1ming
21
eBPF结构体梳理 eBPF结构体梳理
源码梳理从bpf_check函数https://elixir.bootlin.com/linux/v6.14-rc5/source/kernel/bpf/verifier.c#L23039开始看起,这里我们会有一个全局的env: 然后经过
2025-03-21 q1ming
21
dynptr分析笔记 dynptr分析笔记
源码分析文档解析https://docs.ebpf.io/linux/concepts/dynptrs/ dyn-ptr意为动态指针,它有很多其他的meta data用于在运行时辅助安全检查; dynptr是一个不透明指针,verifier
2025-03-21 q1ming
21
CVE复现杂记 CVE复现杂记
环境搭建根据commit下载源码到这个网站:https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8357f6fb3d9a02ac55
2025-03-21 q1ming
21
CVE-2024-45020 CVE-2024-45020
漏洞详情在Linux内核eBPF组件的verifier.c文件下的stacksafe函数中,存在越界写漏洞,可能会导致内核崩溃。 首先看Linux-6.5的内核源码: 对比看Linux-6.12的源码: 可以明显看到在开始的位置多了一个
2025-03-21 q1ming
21
c语言知识点汇总 c语言知识点汇总
__aligned__aligned(m) 的含义是地址按照m字节对齐 如果在定义一个结构体的后边使用 __attribute__ ((aligned (8))) 则是要求每一个成员按照8字节对齐; always_inline定义:这是一个
2025-03-21 q1ming
21
CVE-2024-41009 CVE-2024-41009
漏洞分析漏洞描述 patch首先新增了一个计数器pending_pos,和producer_pos放在同一个页中: 漏洞出现在reserve的过程: 上述代码中pend_pos累加了ringbuf中所有的已经reverse但是还没有su
2025-03-21 q1ming
21
为什么要bindCore? 为什么要bindCore?
芝士per-CPU 和 task迁移在运行时每一个CPU在不同的slab上操作以避免争用;被一个CPU使用的slab的freelist通常被指为一个per-CPU freelist;当一个CPU分配object的时候会首先从它的per-CP
2025-03-21 q1ming
21
CVE-2021-3489 CVE-2021-3489
漏洞分析对比Linux v5.10和v5.13的源码可以发现,v5.13多了一个关于len和 rb->mask+1的比较判断: 先看第一个宏:RINGBUF_MAX_RECORD_SZ: 其实际值就是0xffff_ffff &
2025-03-21 q1ming
21
canary 相关知识点 canary 相关知识点
在gdb中调试canary的两种方法:(1)在GDB中输入 print (void)arch_prctl(0x1003,$rsp-8)x/xg $rsp-8 即可查看到 fs 中的值#注意这个调试命令的输入必须保证此时程序还在子线程中;
2025-03-21 q1ming
21
apache-webpwn apache-webpwn
CHECK调试安装gdbserver: apt update apt install gdbserver
2025-03-21 q1ming
11 / 14