奇安信CERT
致力于第一时间为企业级用户提供安全风险通告和有效解决方案。
风险通告
近日,奇安信 CERT 监测到有安全研究员发布了Linux kernel eBPF本地提权漏洞(CVE-2021-3490)的漏洞细节和POC,并在Ubuntu 21.04上进行了演示。该漏洞是由于按位操作(AND,OR和XOR)的eBPF ALU32边界跟踪没有正确更新32位边界而导致,利用该漏洞可触发越界读写,从而从普通权限提升到root权限。鉴于漏洞危害较大,建议用户及时升级版本。
当前漏洞状态
细节是否公开 | PoC状态 | EXP状态 | 在野利用 |
是 | 已公开 | 已公开 | 未知 |
漏洞描述
奇安信CERT第一时间复现了此漏洞,复现截图如下:
风险等级
影响范围
Linux Kernel < v5.10.37
Linux Kernel < v5.11.21
Linux Kernel < v5.12.4
Linux Kernel < v5.13-rc4
处置建议
2.建议尽快升级Linux到安全版本
Linux Kernel v5.10.37
Linux Kernel v5.11.21
Linux Kernel v5.12.4
Linux Kernel v5.13-rc4
方法一:升级Linux内核
下载链接:https://github.com/torvalds/linux/releases
方法二:安装Linux代码库补丁
下载链接:https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=049c4e13714ecbca567b4d5f6d563f05d431c80e
技术分析
在Linux eBPF中定义了指令集,这套指令集使用了11个x64寄存器、一个程序计数器还有512字节大小的堆栈。由于eBPF指令集可以对整个64位寄存器操作或者仅操作低32位,所以验证器将存储寄存器边界。
每次操作都会更新寄存器中的边界,当在eBPF ALU64上执行按位AND,OR和XOR时,如果操作数分别为32位和64位时,假设执行BPF_ALU64_REG(BPF_AND, R2, R3)指令,R2中操作数为32位,R3中操作数为64位,对寄存器 R2 和寄存器 R3 执行 AND 运算并将结果保存在 R2 中,R2边界为var_off = {mask = 0xFFFFFFFF00000000; value = 0x1},R3边界为var_off = {mask = 0x0; value = 0x100000002},在调用__update_reg32_bounds函数更新寄存器边界的时候,由于没有对R2的边界进行验证导致了攻击者可以利用此漏洞来越界读取或者写入。
参考资料
[2]https://www.graplsecurity.com/post/kernel-pwning-with-ebpf-a-love-story
时间线
2021年8月4日,奇安信 CERT发布安全风险通告
到奇安信NOX-安全监测平台查询更多漏洞详情
奇安信CERT长期招募安全研究员
↓ ↓ ↓ 向下滑动图片了解更多↓ ↓ ↓
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...