Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
yc-mk8s-copy-fail-mitigation — DaemonSet 用于缓解漏洞 CVE-2026-31431(Copy Fail) | Kitploit
工具/GitHubGitHub/yandex-cloud-examples/yc-mk8s-copy-fail-mitigation
容器安全漏洞分析配置审计云安全DevSecOps
GitHubyandex-cloud-examples/yc-mk8s-copy-fail-mitigation

yc-mk8s-copy-fail-mitigation

DaemonSet 用于缓解漏洞 CVE-2026-31431(Copy Fail)

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
1013个月前尚未审核

Copy Fail / Dirty Frag 缓解措施(适用于 Yandex Managed Kubernetes)

自动为 Yandex Managed Kubernetes 集群的所有 worker 节点应用针对 Linux 内核漏洞 CVE-2026-31431、CVE-2026-43284 和 CVE-2026-43500 的缓解措施。

漏洞描述

CVE 标识符(CVE ID): CVE-2026-43284、CVE-2026-43500

CVE 链接: https://nvd.nist.gov/vuln/detail/CVE-2026-43284

原始报告:

  • Dirty Frag(PoC 和 write-up):https://github.com/V4bel/dirtyfrag
  • Copy Fail 2: Electric Boogaloo(xfrm-ESP PoC):https://github.com/0xdeadbeefnetwork/Copy_Fail2-Electric_Boogaloo
  • oss-security 邮件列表:https://www.openwall.com/lists/oss-security/2026/05/07/8

简要描述:

Dirty Frag 是 Linux 内核中的一类逻辑漏洞,允许非特权本地用户获取超级用户(root)权限。利用过程结合了 xfrm-ESP 和 RxRPC 子系统中两个独立的 page-cache 写入原语,每个原语本身都足以实现权限提升。

Copy Fail 2: Electric Boogaloo 是一个独立的 PoC,利用 xfrm-ESP 原语(CVE-2026-43284)。从漏洞类别来看,它与原始的 Copy Fail(CVE-2026-31431)类似,因此此 DaemonSet 同时保留了针对原始 AF_ALG 场景和新的 Dirty Frag 变体的缓解措施。

攻击方式:

  • 不需要远程访问——仅需一个非特权本地账户
  • 属于确定性逻辑漏洞,无 race condition——首次尝试即可成功
  • 利用失败时不会导致 kernel panic
  • 可作为从容器逃逸到宿主机的原语,因为 page cache 对整个节点是共享的

两种变体的根本原因相同:当使用 splice() / MSG_SPLICE_PAGES 时,内核会将 page cache 页面直接放入套接字缓冲区(skb)的片段中。xfrm-ESP 和 RxRPC 子系统会对这些片段执行就地解密,而不检查它们是否为私有页面。结果,攻击者可以获得对任何可读文件的 page cache 的受控写入。

受影响的技术:

  • Linux 内核,net/ipv4/esp4.c / net/ipv6/esp6.c 子系统(xfrm-ESP)
  • Linux 内核,net/rxrpc/rxkad.c 子系统(RxRPC / RxKAD)
  • 系统调用 splice() / vmsplice() 与 UDP 套接字(ESP-in-UDP)和 AF_RXRPC 结合使用
  • 通过阻止 AF_ALG(algif_aead)单独保留原始 Copy Fail(CVE-2026-31431)的缓解措施

该漏洞不直接影响作为 Dirty Frag 一部分的 AF_ALG(algif_aead)——这是单独的 Copy Fail 漏洞(CVE-2026-31431)。同样,dm-crypt / LUKS、kTLS、内核内 TLS 以及无 UDP 封装的 tunnel 模式下的 IPsec 也不受直接影响。

攻击向量和 CVSS v.3.1 危险等级:

基础评分:截至发布时尚未分配。

从性质上看,该漏洞类似于 Copy Fail(CVE-2026-31431,7.8 HIGH,CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)——这是一种无 race condition 的本地权限提升。

此修复的作用

DaemonSet 会在集群的每个 worker 节点上自动执行以下操作:

  1. 检查 AF_ALG 的可用性——为原始 Copy Fail 场景执行快速测试
  2. 阻止易受攻击的模块——创建 /etc/modprobe.d/blacklist-lpe.conf,包含针对 algif_aead、esp4、esp6 和 rxrpc 的规则
  3. 卸载模块——如果 algif_aead、esp4、esp6 和 rxrpc 已加载,则执行 rmmod
  4. 重置 page cache 并验证配置——清理缓存并检查配置文件是否存在
  5. 监控状态——每小时检查配置是否存在,并在必要时重新卸载模块

快速开始

1. 下载 DaemonSet

root@kitploit:~
wget https://raw.githubusercontent.com/yandex-cloud-examples/yc-mk8s-copy-fail-mitigation/main/copy-fail-mitigation-daemonset.yaml

或者克隆仓库:

root@kitploit:~
git clone https://github.com/yandex-cloud-examples/yc-mk8s-copy-fail-mitigation.git
cd yc-mk8s-copy-fail-mitigation

2. 应用修复

root@kitploit:~
kubectl apply -f copy-fail-mitigation-daemonset.yaml

3. 检查应用状态

root@kitploit:~
# 检查 DaemonSet 状态
kubectl get daemonset -n kube-system cve-2026-31431-fix

# 查看修复已应用到多少个节点
kubectl get pods -n kube-system -l app=cve-2026-31431-fix -o wide

4. 查看修复应用日志

root@kitploit:~
# initContainer 日志(应用修复)
kubectl logs -n kube-system -l app=cve-2026-31431-fix -c apply-fix

# 主容器日志(监控)
kubectl logs -n kube-system -l app=cve-2026-31431-fix -c monitor

成功应用示例

root@kitploit:~
=========================================
Copy Fail / Dirty Frag mitigation for Yandex Managed K8s
Node: demo-ru-central1-a-1
Date: Thu May 08 14:00:00 UTC 2026
=========================================

Step 1: Checking vulnerability before fix...
❌ System is VULNERABLE - AF_ALG AEAD interface is accessible

Step 2: Creating modprobe configuration...
✓ Created /etc/modprobe.d/blacklist-lpe.conf

Step 3: Unloading vulnerable modules...
  ✓ algif_aead unloaded
  ✓ esp4 not loaded
  ✓ esp6 not loaded
  ✓ rxrpc not loaded

Step 3.5: Dropping system caches...
✓ System caches cleared

Step 4: Verifying the fix...
✓ Configuration file exists:
install algif_aead /bin/false
install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false

Step 5: Testing if vulnerability is fixed...
✓ AF_ALG AEAD interface is properly blocked

=========================================
✓ Mitigation applied successfully
=========================================

手动检查漏洞

您可以手动检查节点上是否存在漏洞。通过 SSH 连接到节点并执行:

root@kitploit:~
# 通过 AF_ALG 检查原始 Copy Fail 场景的可用性
python3 -c 'import socket; s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0); s.bind(("aead","authencesn(hmac(sha256),cbc(aes))")); print("AF_ALG AEAD available - VULNERABLE")'

# 如果输出 "AF_ALG AEAD available - VULNERABLE" - 系统存在漏洞
# 如果报错 - 系统已受保护

检查配置:

root@kitploit:~
# 检查阻止配置是否存在
cat /etc/modprobe.d/blacklist-lpe.conf

# 预期输出:
# install algif_aead /bin/false
# install esp4 /bin/false
# install esp6 /bin/false
# install rxrpc /bin/false

检查易受攻击的模块是否未加载:

root@kitploit:~
lsmod | egrep 'algif_aead|esp4|esp6|rxrpc'

移除修复

如果需要删除 DaemonSet:

root@kitploit:~
kubectl delete -f copy-fail-mitigation-daemonset.yaml

重要提示: 删除 DaemonSet 不会从节点上删除配置文件。文件 /etc/modprobe.d/blacklist-lpe.conf 将保留在原位并继续保护系统。

要从节点上完全移除修复,需要 SSH 连接到每个节点并手动删除文件:

root@kitploit:~
rm /etc/modprobe.d/blacklist-lpe.conf

技术细节

使用的权限:

  • hostPID: true——用于通过 nsenter 访问主机进程
  • privileged: true——用于写入 /etc 和卸载内核模块
  • Volume mount /——用于访问主机文件系统

镜像: ubuntu:22.04

资源:

  • Init 容器:10m CPU / 64Mi RAM(requests),200m CPU / 128Mi RAM(limits)
  • Monitor 容器:5m CPU / 32Mi RAM(requests),50m CPU / 64Mi RAM(limits)

命名空间: kube-system

兼容性

  • ✓ Yandex Managed Kubernetes
  • ✓ Ubuntu 20.04
  • ✓ Ubuntu 22.04
  • ✓ Kubernetes 1.20+

许可证

Apache License 2.0

详见 LICENSE。

支持

如遇问题,请在仓库中创建 issue。

下载工具