
Author: Sushin Ivan
Date: March 2026
This repository contains the results of a full security review of the vulnerability CVE-2024-3094 (Supply Chain Attack in the XZ Utils library).
Objective:
Artifacts:
| File | Description |
|---|---|
docs/ThreatModel.md | STRIDE threat model + diagram |
docs/Report_Final.pdf | Final report (57+ pages) |
exploit/PoC.py | Proof-of-Concept of the vulnerability |
tests/ | Set of automated tests (pytest) |
reports/Findings.xlsx | Security Review findings table |
presentation/ | Presentation slides and video |
cd kaspersky_task_SushinIvan
# Build the image
docker build -t cveanalysis:1.0 .
# Verify the image
docker images | grep cveanalysis
# Run the container
docker run -it --rm --privileged -v $(pwd):/work cveanalysis:1.0
cd /work/src/vulnerable-code/build
# Clear cache
rm -rf CMakeCache.txt CMakeFiles/
# Configuration
cmake .. -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Debug \
-DUSE_ATTR_IFUNC=OFF -DENABLE_NLS=OFF
# Build
make -j$(nproc)
# Check version
./xz --version
# Expected output: xz (XZ Utils) 5.6.1
cd /work/src/patched-code/build
# Clear cache
rm -rf CMakeCache.txt CMakeFiles/
# Configuration
cmake .. -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Debug \
-DUSE_ATTR_IFUNC=OFF -DENABLE_NLS=OFF
# Build
make -j$(nproc)
# Check version
./xz --version
# Expected output: xz (XZ Utils) 5.6.2
cd /work/src/vulnerable-code/build
# Build
make -j$(nproc)
# Run project tests
make test
# Expected result: All tests passed
# Install dependencies
cd /work
pip3 install -r tests/requirements.txt
# Run pytest
python3 -m pytest tests/ -v
Expected result: 5 passed
Static Analysis
# Symbol analysis (nm)
nm -C liblzma.a | grep -iE "ssh|backdoor|hook|init"
# Cppcheck
cppcheck --enable=all --inconclusive src/liblzma 2> reports/cppcheck_log.txt
Dynamic Analysis
# AddressSanitizer (build with flags)
cmake .. -DCMAKE_C_FLAGS="-fsanitize=address -g"
# Valgrind
valgrind --leak-check=full ./exploit/test_trigger
# AFL++ Fuzzing (30 minutes)
timeout 1800 afl-fuzz -i fuzzing/inputs -o fuzzing/outputs -- ./exploit/test_trigger_afl @@
.
├── Dockerfile # Docker image
├── README.md # This file
├── Report_Final.pdf # Final report
├── docs/
│ ├── ThreatModel.md # Threat model
│ └── threat_model.png # Diagram
├── exploit/
│ ├── PoC.py # Proof-of-Concept
│ ├── test_trigger.c # Test for ASAN/AFL++
│ ├── test_trigger # Binary
│ └── test_trigger_afl # Instrumented binary
├── tests/
│ ├── src/
│ │ └── test_cve2024_3094.py # Automated tests
│ ├── CMakeLists.txt # Test configuration
│ └── requirements.txt # Python dependencies
├── reports/
│ ├── Findings.xlsx # Findings table
│ ├── asan_test_output.txt # ASAN logs
│ ├── valgrind_log.txt # Valgrind logs
│ ├── cppcheck_log.txt # Cppcheck logs
│ ├── afl_fuzzing_log.txt # AFL++ logs
│ └── version_*.txt # Build versions
└── presentation/
└── slides.md # Presentation slides
| Component | Version | Purpose |
|---|
| Docker Engine | 20.10+ | Environment containerization |
| Git | 2.20+ | Version control |
| Python | 3.8+ | Tests and scripts |
| GCC/Clang | 9.0+ | Compilation of XZ Utils |