
Artifatti dell'ambiente Docker di CVE-2020-8036
Questo repository è un'istantanea dell'ambiente di vulnerabilità riproducibile per CVE-2020-8036 (lettura fuori dai limiti del parser SOME/IP di tcpdump, CWE-125), esportata dall'immagine container corrispondente yan5ui/cve-2020-8036:tier1 (basata su ubuntu:20.04).
L'ambiente ha eseguito una build riproducibile sul codice sorgente della versione vulnerabile e conserva gli artefatti di compilazione, gli script di build e il log di build completo, direttamente utilizzabili per la riproduzione della vulnerabilità e la verifica degli exploit.
| Campo | Valore |
|---|---|
| CVE | CVE-2020-8036 |
| Progetto | the-tcpdump-group/tcpdump |
| CWE | CWE-125 (Lettura fuori dai limiti, Out-of-bounds Read) |
| Funzione vulnerabile | tok2strbuf() (chiamata in modo non sicuro dal dissector SOME/IP) |
| File vulnerabile | print-someip.c |
| Repository upstream | https://github.com/the-tcpdump-group/tcpdump |
Questo ambiente seleziona il sanitizer di compilazione in base alla categoria CWE della vulnerabilità, in modo che il comportamento di vulnerabilità attivato possa essere catturato in modo stabile.
clang-10-O1 -g -fno-omit-frame-pointer -fsanitize=address,undefined-fsanitize=address,undefinedAddressSanitizer si occupa di segnalare immediatamente le violazioni di accesso alla memoria quando si verifica una lettura fuori dai limiti, fornendo la posizione esatta del crash e lo stack di chiamate. UndefinedBehaviorSanitizer copre i comportamenti indefiniti associati. Insieme garantiscono che questa lettura fuori dai limiti, quando attivata, produca un segnale chiaro e determinabile. L'artefatto di compilazione compile/artifacts/tcpdump è l'eseguibile tcpdump con i suddetti sanitizer.
.
├── 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/ e workspace/Entrambi sono le directory di lavoro utilizzate dall'exploit agent harness durante l'esecuzione della riproduzione/sfruttamento: workspace/ funge da area di lavoro predefinita dell'agente, task/ viene utilizzata per posizionare l'input di una singola attività di riproduzione. Nell'immagine sono vuote; durante la riproduzione vengono riempite dall'harness in fase di esecuzione. Fanno parte delle directory convenzionali standard dell'ambiente e non contengono artefatti di compilazione.
La build all'interno del container è una build in-source (./configure && make, vedere compile/build.sh). Il codice sorgente si trova in /src/tcpdump/, il binario principale è compile/artifacts/tcpdump. Seguendo le istruzioni del task in description.md, costruire un input (pacchetto pcap) che attivi il percorso di parsing SOME/IP, e sarà possibile osservare il report di crash per lettura fuori dai limiti sotto ASan.