Kronk-imp/CVE-2024-36971
GitHub: Kronk-imp/CVE-2024-36971
一个仅供研究与分析目的的 Android 内核 UAF 漏洞概念验证(PoC)项目。
Stars: 0 | Forks: 0
# CVE-2024-36971 — 概念验证(仅研究与分析)
# 目录
1. 概述
2. 仓库内容
3. 高层技术摘要(不可操作)
4. 关于包含的 `sock.h` 片段
5. 研究环境(高层,非可执行)
6. 观察结果(测试设备)
7. 负责任披露与联系
8. 法律与伦理声明
# 1. 概述
**CVE-2024-36971** 是 Android 内核网络子系统中的一个**使用已释放内存(UAF)** 漏洞。根本原因是在处理路由/目标缓存(`sk->sk_dst_cache`)时,引用计数的操作顺序不当,导致悬空指针可能被并发代码路径访问。本仓库记录了一个防御性研究型概念验证(PoC),用于演示*影响*(内核不稳定和数据损坏),而不提供可利用的原语。
本 README 解释了该 PoC 演示的内容、包含的 `sock.h` 的相关性,以及测试与分享的相关约束。
# 2. 仓库内容
* `CVE-2024-36971` — PoC 源代码文件(保留在仓库中用于透明性)。**不可执行**;仅作为归档/分析用途。
* `sock.h` — 公开的 Android 内核头文件片段,展示与问题相关的套接字/目标结构及辅助函数。
* `README.md` — 本文件(文档与指导)。
# 3. 高层技术摘要(不可操作)
* **根本原因:** 对 `dst` 对象的引用计数处理与释放顺序不当,导致使用已释放内存(UAF)。
* **触发向量(高层):** 能够触发内核中 `__dst_negative_advice()` / 目标缓存代码路径的网络路径可能导致 UAF 条件。**本仓库不提供触发指令**。
* **观察影响:** 内核内存损坏、系统不稳定;在测试环境中,存储元数据损坏导致“数据损坏”的启动状态(软变砖)。
* **可利用性状态:** 该 PoC 演示了影响并确认了内核中存在关键漏洞。测试中观察到的损坏是**非确定性且破坏性**的,并非稳定可靠的代码执行原语。将该漏洞转化为可靠利用需要高级的内存操纵与分配器控制技术——此类工作不在本仓库范围内,也不提供。
# 4. 关于包含的 `sock.h` 片段
`sock.h` 头文件是公开可用的内核头文件(源自 Android 内核源码),包含以下内容:
* `struct sock` 及相关网络结构的定义;
* 对 `sk_dst_cache`(套接字目标缓存)及获取/设置目标引用的辅助函数的引用;
* RCU/引用计数访问模式与 `dst_release()` 的使用。
该头文件用于展示为解释 CVE-2024-36971 所涉及的精确结构及代码位置。头文件通过展示关键的数据字段与函数,帮助说明在正确性与同步方面至关重要的操作顺序。
# 5. 研究环境(高层,非可执行)
**注意:** 以下内容是典型安全研究人员在受控实验室中使用的能力与工具列表。**故意不可操作**——不包含命令、脚本或参数值。
建议用于安全隔离的内核研究能力:
* 一个**隔离的测试网络**或物理隔离的实验室,确保不会意外影响第三方系统。
* 专用的**测试硬件**,由研究者完全拥有并可重新刷写/擦除(切勿在生产或第三方设备上使用)。
* 虚拟化(例如 QEMU/KVM),用于在受控环境中构建与调试内核镜像。
* Android 内核源码树及本地构建环境,用于编译插桩/调试内核并生成符号映射。
* 调试/日志工具与流程:`adb`/fastboot 用于设备访问,收集 `dmesg`/`last_kmsg`,以及用于将内核地址映射到源代码行的工具(符号文件、`addr2line` 等)。
* 内核调试与沙盒工具(如适用):KASAN/KMSAN、ftrace 等追踪设施,用于检测内存安全违规而不尝试利用。
* 安全归档与存储日志、转储、照片证据的工件。
# 6. 观察结果(测试设备)
* **测试设备:** Nothing Phone (1) — 由研究者拥有并控制的设备。测试时运行的内核版本未包含修复补丁。
* **测试上下文:** PoC 从与目标设备处于同一本地网络的隔离测试环境中执行。
* **结果:** 在多次发送 PoC 流量后,设备出现严重的内核内存损坏。损坏传播至存储元数据,设备启动时报错显示 **“数据损坏”**。设备需要修复/重刷才能恢复可用状态(软变砖)。
* **重要说明:** 此行为是**破坏性且非确定性**的;PoC 导致数据损坏与丢失,而非稳定可靠的可执行原语。研究者在观察到破坏性行为后停止测试——目标是验证影响,而非开发可用的利用程序。
# 7. 负责任披露与联系
本项目遵循负责任披露原则。如果您是供应商、维护者或安全联系人,并需要额外的非可执行诊断工件(完整回溯、净化日志或取证转储)以验证或修复问题,请通过安全通道联系本仓库所有者。推荐方式包括:
* 在 GitHub 上打开一个**私有问题**,并注明安全通信渠道;或
* 通过 PGP 加密邮件直接联系(提供您的公钥或请求研究者的密钥)。
研究者将在安全、适当的条款下与已验证的供应商/维护者合作,分享更多诊断材料。**不会公开可复现的复现步骤。**
# 8. 法律与伦理声明
* 本仓库仅提供**研究、教育与防御**用途,**按原样**提供。
* 作者**不鼓励**恶意使用,并否认因此产生的任何责任。
* **切勿**在您未拥有或管理的系统上使用包含的材料。
* 请始终遵守适用法律、机构政策及供应商协调披露流程。
标签:Android 内核, CVE, dst_cache, PoC, UAF, Use-After-Free, 内存损坏, 内核漏洞, 内核稳定性, 内核网络, 客户端加密, 数字签名, 数据损坏, 暴力破解, 漏洞分析, 漏洞复现, 网络子系统, 负责任披露, 路径探测, 路由缓存, 软砖, 防御性研究