漏洞基本信息
| 项目 | 内容 |
|---|---|
| 漏洞编号 | CVE-2026-46331 |
| 漏洞名称 | net/sched act_pedit 页缓存损坏本地提权 |
| 漏洞类型 | 本地提权 |
| CVSS评分 | 7.1(High) |
| 披露时间 | 2026年6月16日(NVD发布) |
| 影响范围 | Linux Kernel v5.18 至 v7.1-rc7(约4年,2022年5月~2026年6月) |
漏洞描述
该漏洞位于Linux内核网络流量控制子系统(net/sched)的 act_pedit 动作模块中。
漏洞原理:
- tcf_pedit_act() 函数在处理网络数据包编辑时,于 key 循环之前使用 tcfp_off_max_hint 一次性计算 COW(Copy-On-Write)范围
- 但该 hint 值未考虑 typed keys 在运行时添加的 header offset,导致部分写入区域未被正确 COW 处理
- 这会造成页缓存(page cache)损坏,攻击者可借此实现本地提权
受影响内核版本
主线内核
| 版本范围 | 状态 |
|---|---|
| v5.18 ~ v7.1-rc7 | 受影响 |
| < v5.18 | 不受影响 |
| >= v7.1 | 已修复 |
注:CVE 于2026年6月16日刚发布,各稳定分支的修复版本仍在陆续发布中。
openKylin受影响情况
- 社区相关SIG组正在确认中,请关注本贴及 openKylin 安全公告地址:https://www.openkylin.top/support/patch-cn.html
- 补丁就绪后通过系统更新升级内核并重启
临时缓解措施(来源于公开资料,风险需自行评估)
如无法立即升级内核,可通过以下方式降低风险:
方案1:限制非特权用户使用 tc 命令(推荐)
移除普通用户的 tc 执行权限:
chmod 750 /sbin/tc
方案2:卸载 act_pedit 模块(如未使用)
检查模块是否加载:
lsmod | grep pedit
如已加载且不需要,卸载模块并加入黑名单:
modprobe -r act_pedit
echo "blacklist act_pedit" >> /etc/modprobe.d/blacklist.conf
方案3:限制用户命名空间(减少本地攻击面)
echo "kernel.unprivileged_userns_clone = 0" >> /etc/sysctl.d/99-cve-2026-46331.conf
sysctl -p /etc/sysctl.d/99-cve-2026-46331.conf
参考资料
- NVD详情:https://nvd.nist.gov/vuln/detail/CVE-2026-46331
- CVE Record:https://www.cve.org/CVERecord?id=CVE-2026-46331
- 上游修复commit:https://git.kernel.org/stable/c/899ee91156e57784090c5565e4f31bd7dbffbc5a
- openKylin Security Governance SIG:https://gitee.com/openkylin/securitygovernance-management
openKylin Security Governance SIG