
Artefacts de l'environnement docker de CVE-2020-8036
Ce dépôt est un instantané reproductible de l'environnement de vulnérabilité pour CVE-2020-8036 (dépassement de lecture dans l'analyseur SOME/IP de tcpdump, CWE-125), exporté depuis l'image conteneur correspondante yan5ui/cve-2020-8036:tier1 (basée sur ubuntu:20.04).
L'environnement a été construit de manière reproductible à partir du code source de la version vulnérable, et conserve les artefacts de compilation, les scripts de construction et les journaux de compilation complets, pouvant être utilisés directement pour la reproduction de la vulnérabilité et la validation d'exploit.
| Item | Valeur |
|---|
| CVE | CVE-2020-8036 |
| Projet | the-tcpdump-group/tcpdump |
| CWE | CWE-125(dépassement de lecture, Out-of-bounds Read) |
| Fonction vulnérable | tok2strbuf()(appelée de manière non sécurisée par le dissecteur SOME/IP) |
| Fichier vulnérable | print-someip.c |
| Dépôt amont | https://github.com/the-tcpdump-group/tcpdump |
Cet environnement sélectionne l'instrumentation à la compilation (sanitizer) en fonction de la catégorie CWE de la vulnérabilité, afin que le comportement de la vulnérabilité déclenchée puisse être capturé de manière stable.
clang-10-O1 -g -fno-omit-frame-pointer -fsanitize=address,undefined-fsanitize=address,undefinedAddressSanitizer est chargé de signaler immédiatement toute violation d'accès mémoire en cas de dépassement de lecture et de fournir l'emplacement exact du crash et la pile d'appels. UndefinedBehaviorSanitizer couvre les comportements indéfinis associés. Les deux garantissent ensemble que le dépassement de lecture produit un signal clair et déterminable lorsqu'il est déclenché. L'artefact de compilation compile/artifacts/tcpdump est l'exécutable tcpdump avec l'instrumentation ci-dessus.
.
├── 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/ et workspace/Il s'agit des répertoires de travail utilisés par l'exploit agent harness lors de l'exécution de la reproduction/exploitation : workspace/ sert d'espace de travail par défaut pour l'agent, task/ est utilisé pour placer l'entrée de la tâche de reproduction unique. Les deux sont vides dans l'image ; ils sont remplis par le harness pendant l'exécution. Ce sont des répertoires de convention standard de l'environnement et ne contiennent pas d'artefacts de compilation.
La construction à l'intérieur du conteneur est une construction in-source (./configure && make, voir compile/build.sh). Le code source se trouve dans /src/tcpdump/, le binaire principal est compile/artifacts/tcpdump. En construisant une entrée (paquet pcap) qui déclenche le chemin d'analyse SOME/IP selon les instructions de la tâche dans description.md, vous pourrez observer le rapport de crash de dépassement de lecture sous ASan.