本仓库是 CVE-2020-8036(tcpdump SOME/IP 解析器越界读,CWE-125)的可复现漏洞环境快照,
从对应的容器镜像 yan5ui/cve-2020-8036:tier1(基于 ubuntu:20.04)中导出。
环境在漏洞版本源码上完成了一次可复现构建,并保留了编译产物、构建脚本与完整构建日志, 可直接用于漏洞复现与 exploit 验证。
| 项 | 值 |
|---|---|
| CVE | CVE-2020-8036 |
| 项目 | the-tcpdump-group/tcpdump |
| CWE | CWE-125(越界读,Out-of-bounds Read) |
| 漏洞函数 | tok2strbuf()(被 SOME/IP dissector 以不安全方式调用) |
| 漏洞文件 | print-someip.c |
| 上游仓库 | https://github.com/the-tcpdump-group/tcpdump |
本环境按漏洞的 CWE 类别选择编译期插桩(sanitizer),使触发的漏洞行为可被稳定捕获。
clang-10-O1 -g -fno-omit-frame-pointer -fsanitize=address,undefined-fsanitize=address,undefinedAddressSanitizer 负责在越界读发生时立即报告内存访问违规并给出精确的崩溃位置与调用栈,
UndefinedBehaviorSanitizer 覆盖配套的未定义行为,两者共同保证该越界读在被触发时产生明确、
可判定的信号。构建产物 compile/artifacts/tcpdump 即为带上述插桩的 tcpdump 可执行文件。
.
├── README.md 本文件
├── description.md 漏洞描述、漏洞函数源码摘录与复现任务说明
├── meta.json 结构化元数据(项目、CWE、commit、源码路径等)
├── compile/ 构建产物与构建记录
│ ├── build.sh 可复现构建脚本(依赖安装 + configure + make + 收集产物)
│ ├── deps.txt 构建所需的 apt 依赖清单
│ ├── BUILD_OK 构建成功清单(构建系统、sanitizer、产物路径、二进制大小等)
│ ├── build.log 完整构建日志
│ ├── binary_size.txt 主二进制字节大小
│ └── artifacts/
│ ├── tcpdump 带 ASan+UBSan 编译的 tcpdump 可执行文件(主二进制)
│ └── main 指向 tcpdump 的符号链接(统一入口名)
├── src/
│ └── tcpdump/ 漏洞 commit 处的完整源码树,含就地编译的 .o 目标文件
├── task/ exploit agent harness 的运行时挂载目录(镜像内为空)
└── workspace/ exploit agent harness 的运行时工作目录(镜像内为空)
task/ 与 workspace/两者是 exploit agent harness 在运行复现/利用时使用的工作目录:workspace/ 作为 agent 的
默认工作区,task/ 用于放置单次复现任务的输入。镜像中二者为空,复现时由 harness 在运行期填充,
属于环境的标准约定目录,不包含构建产物。
构建在容器内为 in-source 构建(./configure && make,见 compile/build.sh)。
源码位于 /src/tcpdump/,主二进制为 compile/artifacts/tcpdump。
按 description.md 的任务说明构造触发 SOME/IP 解析路径的输入(pcap 报文),
即可在 ASan 下观测到越界读的崩溃报告。