此仓库包含我最近在nftables子系统中发现的漏洞利用代码(已分配CVE-2023-0179),影响了从5.5到6.2-rc3的所有Linux版本,但漏洞利用在6.1.6上测试。
漏洞详情和说明可在oss-security找到
只需调用 make needle 命令即可生成对应的可执行文件。
构建成功需要 libmnl 和 libnftnl:
sudo apt-get install libmnl-dev libnftnl-dev
漏洞利用将进入一个非特权用户和网络命名空间,并通过 rule_add_payload 函数添加一个 nft_payload 表达式,该表达式在被评估时将触发栈缓冲区溢出并覆盖寄存器。
然后通过以下nft命令检索内容:
nft list map netdev mytable myset12
输出将泄露几个与内核数据结构相关的混乱地址,其中包括一个内核指令地址和regs指针。
漏洞利用通过滥用 modprobe_path 变量创建一个UID为0的新用户账户 needle:needle。
享受root权限。