containerd容器进程权限提升漏洞公告(CVE-2022-24769)
漏洞详情
containerd开源社区中披露了一个安全漏洞,在containerd创建容器的场景,非root容器进程的初始inheritalbe capability不为空,可能会造成在execve执行可执行文件时提升到允许的cap集合。该问题已被收录为CVE-2022-24769。
漏洞类型 |
CVE-ID |
漏洞级别 |
披露/发现时间 |
---|---|---|---|
权限提升 |
CVE-2022-24769 |
低 |
2022-3-24 |
漏洞影响
containerd创建容器时默认把 Linux Process capabilities配置到 Inheritable 集合上,这会导致在容器内的进程在以 Non-Root 用户 execve() 执行可执行文件时Inheritable和文件的Inheritable集合的交集被添加到执行完execve后的进程的Permited集合中,出现非预期的“越权“行为。需要说明的是,这个越权并没有突破 execve 前的进程权限,仅仅是继承之前的 capabilities。
该漏洞的影响范围如下:
1. CCE Turbo集群,使用了低于1.4.1-98版本的containerd作为kuberentes CRI运行时。
2. CCE集群containerd版本低于1.5.11以下的集群。
判断方法
在node节点上使用root用户执行containerd --version查看containerd版本。
新Console上的“节点管理”处也可以查看运行时版本。
漏洞修复方案
容器 entrypoint 使用 capsh工具去除自身的 Inheritable Capabilities。