Linux Overlay安全问题分析
导读:一 背景与风险概览 OverlayFS 通过联合挂载将只读的 lower 层与可写的 upper 层叠加为统一的 merged 视图,广泛用于容器镜像分层与可写层实现。其关键语义包括:对文件的读取遵循“上层优先”,对不存在于上层的文件访问会...
一 背景与风险概览 OverlayFS 通过联合挂载将只读的 lower 层与可写的 upper 层叠加为统一的 merged 视图,广泛用于容器镜像分层与可写层实现。其关键语义包括:对文件的读取遵循“上层优先”,对不存在于上层的文件访问会触发 copy-up(从 lower 复制到 upper),以及通过 workdir 配合完成原子替换。这些语义在提供便利的同时,也引入了新的攻击面:当具备特权的文件(如 setuid/setgid、带有 security.capability 的文件)被复制到 upper 层时,可能绕过原有的挂载选项或访问控制,造成本地提权与权限逃逸。
二 典型漏洞机理
- CVE-2021-3493(Ubuntu 特定):部分 Ubuntu 内核为 OverlayFS 启用了 FS_USERNS_MOUNT,允许低权限用户在用户命名空间中挂载;在设置合并层文件的扩展属性 security.capability 时,由于权限校验未正确跨命名空间约束,导致可把能力写入到上层真实文件,进而实现本地提权。修复思路是在设置能力时引入命名空间感知的检查(如 cap_convert_nscap 的恰当调用与校验)。该问题影响 Ubuntu 14.04/16.04/18.04/20.04/20.10 等版本。
- CVE-2023-0386(通用内核缺陷):在 ovl_copy_up_one 流程中,未对 lower 层文件的属主/属组在当前用户命名空间中的映射进行校验,导致可将 nosuid 挂载点下的 setuid root 文件通过 copy-up“搬运”到 upper 层并保留特权属性,退出命名空间后执行即可提权。修复补丁在 copy-up 前加入 kuid_has_mapping / kgid_has_mapping 检查,若 lower 文件的属主/属组未在当前用户命名空间映射,则中止 copy-up。
三 攻击路径与利用前提
- 利用共性:攻击者通常需要能够在当前会话中创建用户命名空间并进行挂载(如具备 CAP_SYS_ADMIN 于用户命名空间,或系统策略允许非特权挂载),并找到可被触发的 copy-up 或 xattr 写 操作入口。
- CVE-2021-3493 型:在用户命名空间中挂载 OverlayFS,对 merged 层目标文件调用 setxattr(…, “security.capability”, …),借助 OverlayFS 将写转发至 upper 层真实文件,从而写入能力并提权。
- CVE-2023-0386 型:借助 FUSE 在 lower 层构造由 root 拥有且带 setuid 的文件(FUSE 挂载点可绕过某些权限限制),通过 touch/修改元数据 等触发 copy-up 到 upper 层;退出命名空间后执行 upper 层文件,获得 root 权限。
四 防护与加固清单
- 内核与系统
- 及时更新内核与发行版补丁,覆盖 CVE-2021-3493/CVE-2023-0386 等已知缺陷;优先使用包含修复的 稳定内核版本。
- 谨慎启用非特权 OverlayFS 挂载:除非明确需要,避免为 OverlayFS 设置 FS_USERNS_MOUNT;在容器/主机策略中限制普通用户的挂载能力(如通过 Yama 策略、能力剥夺、seccomp 等)。
- 容器与运行时
- 为容器根文件系统启用 nosuid(以及 nodev/noexec)挂载选项,减少 setuid/setgid 可执行文件带来的风险;对需要特权的场景采用最小权限与白名单控制。
- 使用 rootless 容器时,限制其在用户命名空间中的挂载与特权操作;结合 seccomp、AppArmor、SELinux 等强制访问控制降低越权可能。
- 文件系统与挂载
- 避免在 nosuid 挂载点下触发不必要的 copy-up;对关键目录设置 只读 或 noexec 并定期审计异常挂载与属性变更(如 security.capability 的写入)。
- 在运维与审计中,利用 mount/findmnt/auditd 跟踪 OverlayFS 的挂载与关键操作,配合集中日志分析及时发现可疑行为。
五 快速自查要点
- 检查内核与发行版是否包含相关修复;关注是否仍存在 FS_USERNS_MOUNT 导致的非特权挂载可能。
- 排查系统是否存在 setuid/setgid 可执行文件被复制到可写层的风险点(尤其是通过 FUSE 或临时目录触发的 copy-up)。
- 审计 security.capability 的非常规写入与异常 OverlayFS 挂载事件,结合 auditd 与集中日志进行告警。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Overlay安全问题分析
本文地址: https://pptw.com/jishu/768290.html
