BPF子系统漏洞:eBPF程序可触发越界访问

华盟原创文章投稿奖励计划
图片[2]-BPF子系统漏洞:eBPF程序可触发越界访问-华盟网

导语:Linux内核BPF子系统存在多处安全漏洞,包括cgroup本地存储越界访问和调度器扩展迭代器问题,攻击者可利用eBPF程序破坏内核内存。

正文

Linux内核BPF(Berkeley Packet Filter)子系统近日曝出多个高危安全漏洞,影响内核网络过滤、性能监控和系统追踪等多个功能模块。

其中,BPF cgroup本地存储(cgroup local storage)存在越界访问漏洞。安全研究人员Lonial报告,通过精心设计的尾调用(tail call)序列,攻击者可以触发本地存储的越界读取。尾调用是eBPF程序的一种优化机制,允许一个eBPF程序跳转到另一个程序,而这个漏洞使得跳转过程中的内存边界检查失效。

另一个漏洞存在于sched_ext BPF调度器扩展中。BPF程序可能在新分配 iterators 失败后错误地调用next和destroy操作,导致未初始化内存访问。

此外,BPF map元素激活(element activate)路径在异常处理时未能正确恢复引用计数,可能导致use-after-free或内存泄露。

这些漏洞凸显了eBPF作为”内核中的可编程基础设施”面临的安全挑战。随着eBPF在云原生、Service Mesh和可观测性领域的广泛应用,其安全性愈发重要。

影响分析

这些漏洞主要影响启用BPF功能的Linux系统,特别是使用cgroup v2、自定义eBPF程序和sched_ext的企业环境。攻击者需要CAP_BPF权限或其他加载eBPF程序的能力,但在容器逃逸和特权提升场景中具有实际利用价值。

防护建议

  1. 内核更新:应用包含BPF安全修复的最新内核版本
  2. 限制BPF权限:使用seccomp和capabilities限制BPF加载
  3. eBPF程序审计:审查系统上运行的所有eBPF程序
  4. 禁用不必要功能:如不需要可禁用sched_ext等实验性功能
  5. BPF验证器加固:关注内核BPF验证器的持续改进
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容